public abstract class Keyframe
extends Object
implements Cloneable
java.lang.Object | |
↳ | android.animation.Keyframe |
这个类拥有一个动画的时间/值对。 ValueAnimator
使用Keyframe类来定义动画目标在动画过程中的值。 随着时间从一个关键帧继续到另一个关键帧,目标对象的值将在上一个关键帧的值和下一关键帧的值之间生成动画。 每个关键帧还包含一个可选的TimeInterpolator
对象,该对象定义关键帧之前的间隔时间内的时间插值。
Keyframe类本身是抽象的。 特定于类型的工厂方法将返回特定于所存储值的类型的Keyframe的子类。 这是为了在处理最常见的情况下提高性能(例如, float
和int
值)。 其他类型将落入更一般的Keyframe类中,将其值视为Object。 除非动画需要处理需要直接动画的自定义类型或数据结构(并且使用TypeEvaluator
的实现进行TypeEvaluator
),否则应该坚持使用float和int作为动画,使用这些类型的运行时间开销比其他类型低。
Public constructors |
|
---|---|
Keyframe() |
Public methods |
|
---|---|
abstract Keyframe |
clone() 创建并返回此对象的副本。 |
float |
getFraction() 获取此关键帧的时间,作为整个动画持续时间的一部分。 |
TimeInterpolator |
getInterpolator() 获取此关键帧的可选插补器。 |
Class |
getType() 获取关键帧的类型。 |
abstract Object |
getValue() 获取此关键帧的值。 |
boolean |
hasValue() 指示此关键帧是否具有有效值。 |
static Keyframe |
ofFloat(float fraction) 用给定的时间构造一个Keyframe对象。 |
static Keyframe |
ofFloat(float fraction, float value) 用给定的时间和值构造一个Keyframe对象。 |
static Keyframe |
ofInt(float fraction, int value) 用给定的时间和值构造一个Keyframe对象。 |
static Keyframe |
ofInt(float fraction) 用给定的时间构造一个Keyframe对象。 |
static Keyframe |
ofObject(float fraction, Object value) 用给定的时间和值构造一个Keyframe对象。 |
static Keyframe |
ofObject(float fraction) 用给定的时间构造一个Keyframe对象。 |
void |
setFraction(float fraction) 将此关键帧的时间设置为整个动画持续时间的一小部分。 |
void |
setInterpolator(TimeInterpolator interpolator) 设置此关键帧的可选插补器。 |
abstract void |
setValue(Object value) 设置此关键帧的值。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
Keyframe clone ()
创建并返回此对象的副本。 “复制”的确切含义可能取决于对象的类别。 一般意图是,对于任何对象x
,表达式:
will be true, and that the expression:x.clone() != x
will bex.clone().getClass() == x.getClass()
true
, but these are not absolute requirements. While it is typically the case that:
will bex.clone().equals(x)
true
, this is not an absolute requirement.
按照惯例,返回的对象应该通过调用super.clone
获得。 如果一个类和它的所有超类( Object
除外)都遵守这个约定,那么情况就是x.clone().getClass() == x.getClass()
。
按照惯例,这个方法返回的对象应该独立于这个对象(被克隆)。 为了实现这种独立性,可能需要在返回super.clone
之前修改返回的对象的一个或多个字段。 通常,这意味着复制包含被克隆对象的内部“深层结构”的任何可变对象,并将这些对象的引用替换为对这些副本的引用。 如果一个类仅包含原始字段或对不可变对象的引用,那么通常情况下,不需要修改由super.clone
返回的对象中的字段。
类Object
的方法clone
执行特定的克隆操作。 首先,如果该对象的类没有实现接口Cloneable
,则引发CloneNotSupportedException
。 请注意,所有数组都被视为实现接口Cloneable
并且数组类型T[]
的clone
方法的返回类型是T[]
,其中T是任何引用或基本类型。 否则,此方法创建该对象的类的新实例,并使用该对象的相应字段的内容来初始化其所有字段,就像通过赋值一样; 这些字段的内容本身并不克隆。 因此,此方法执行此对象的“浅拷贝”,而不是“深拷贝”操作。
类 Object
本身并没有实现接口 Cloneable
,所以在类为 Object
的对象上调用 clone
方法将导致在运行时抛出异常。
Returns | |
---|---|
Keyframe |
a clone of this instance. |
float getFraction ()
获取此关键帧的时间,作为整个动画持续时间的一部分。
Returns | |
---|---|
float |
The time associated with this keyframe, as a fraction of the overall animation duration. This should be a value between 0 and 1. |
TimeInterpolator getInterpolator ()
获取此关键帧的可选插补器。 值为null
表示没有插值,这与线性插值相同。
Returns | |
---|---|
TimeInterpolator |
The optional interpolator for this Keyframe. |
Class getType ()
获取关键帧的类型。 该信息被用于通过ValueAnimator确定的类型TypeEvaluator
关键帧之间计算值时使用。 该类型基于创建的关键帧的类型。
Returns | |
---|---|
Class |
The type of the value stored in the Keyframe. |
Object getValue ()
获取此关键帧的值。
Returns | |
---|---|
Object |
The value for this Keyframe. |
boolean hasValue ()
指示此关键帧是否具有有效值。 当ObjectAnimator
首次启动时,此方法在内部调用; 通过从目标对象中派生属性的值,此时没有值的关键帧被赋值。
Returns | |
---|---|
boolean |
boolean Whether this object has a value assigned. |
Keyframe ofFloat (float fraction)
用给定的时间构造一个Keyframe对象。 当动画第一次启动时,此时的值将从目标对象派生出来(注意,这意味着没有初始值的关键帧必须用作ObjectAnimator
一部分)。 时间将时间定义为整个动画持续时间的一部分,该值将在动画中保持为真。 关键帧之间的动画值将作为这些关键帧值之间的插值进行计算。
Parameters | |
---|---|
fraction |
float : The time, expressed as a value between 0 and 1, representing the fraction of time elapsed of the overall animation duration. |
Returns | |
---|---|
Keyframe |
Keyframe ofFloat (float fraction, float value)
用给定的时间和值构造一个Keyframe对象。 时间将时间定义为整个动画持续时间的一部分,该值将在动画中保持为真。 关键帧之间的动画值将作为这些关键帧值之间的插值进行计算。
Parameters | |
---|---|
fraction |
float : The time, expressed as a value between 0 and 1, representing the fraction of time elapsed of the overall animation duration. |
value |
float : The value that the object will animate to as the animation time approaches the time in this keyframe, and the the value animated from as the time passes the time in this keyframe. |
Returns | |
---|---|
Keyframe |
Keyframe ofInt (float fraction, int value)
用给定的时间和值构造一个Keyframe对象。 时间将时间定义为整个动画持续时间的一部分,该值将在动画中保持为真。 关键帧之间的动画值将作为这些关键帧值之间的插值进行计算。
Parameters | |
---|---|
fraction |
float : The time, expressed as a value between 0 and 1, representing the fraction of time elapsed of the overall animation duration. |
value |
int : The value that the object will animate to as the animation time approaches the time in this keyframe, and the the value animated from as the time passes the time in this keyframe. |
Returns | |
---|---|
Keyframe |
Keyframe ofInt (float fraction)
用给定的时间构造一个Keyframe对象。 当动画第一次启动时,此时的值将从目标对象派生出来(注意,这意味着没有初始值的关键帧必须用作ObjectAnimator
一部分)。 时间将时间定义为整个动画持续时间的一部分,该值将在动画中保持为真。 关键帧之间的动画值将作为这些关键帧值之间的插值进行计算。
Parameters | |
---|---|
fraction |
float : The time, expressed as a value between 0 and 1, representing the fraction of time elapsed of the overall animation duration. |
Returns | |
---|---|
Keyframe |
Keyframe ofObject (float fraction, Object value)
用给定的时间和值构造一个Keyframe对象。 时间将时间定义为整个动画持续时间的一部分,该值将在动画中保持为真。 关键帧之间的动画值将作为这些关键帧值之间的插值进行计算。
Parameters | |
---|---|
fraction |
float : The time, expressed as a value between 0 and 1, representing the fraction of time elapsed of the overall animation duration. |
value |
Object : The value that the object will animate to as the animation time approaches the time in this keyframe, and the the value animated from as the time passes the time in this keyframe. |
Returns | |
---|---|
Keyframe |
Keyframe ofObject (float fraction)
用给定的时间构造一个Keyframe对象。 当动画第一次启动时,此时的值将从目标对象派生(注意,这意味着必须使用没有初始值的关键帧作为ObjectAnimator
一部分)。 时间将时间定义为整个动画持续时间的一部分,该值将在动画中保持为真。 关键帧之间的动画值将作为这些关键帧值之间的插值进行计算。
Parameters | |
---|---|
fraction |
float : The time, expressed as a value between 0 and 1, representing the fraction of time elapsed of the overall animation duration. |
Returns | |
---|---|
Keyframe |
void setFraction (float fraction)
将此关键帧的时间设置为整个动画持续时间的一小部分。
Parameters | |
---|---|
fraction |
float : time associated with this keyframe, as a fraction of the overall animation duration. This should be a value between 0 and 1. |
void setInterpolator (TimeInterpolator interpolator)
设置此关键帧的可选插补器。 值为null
表示没有插值,这与线性插值相同。
Parameters | |
---|---|
interpolator |
TimeInterpolator
|
Returns | |
---|---|
void |
The optional interpolator for this Keyframe. |
void setValue (Object value)
设置此关键帧的值。
Parameters | |
---|---|
value |
Object : value for this Keyframe. |