Keyframe
public
abstract
class
Keyframe
extends Object
implements
Cloneable
java.lang.Object | |
↳ | androidx.core.animation.Keyframe<T> |
This class holds a time/value pair for an animation. The Keyframe class is used
by ValueAnimator
to define the values that the animation target will have over the course
of the animation. As the time proceeds from one keyframe to the other, the value of the
target object will animate between the value at the previous keyframe and the value at the
next keyframe. Each keyframe also holds an optional Interpolator
object, which defines the time interpolation over the intervalue preceding the keyframe.
The Keyframe class itself is abstract. The type-specific factory methods will return
a subclass of Keyframe specific to the type of value being stored. This is done to improve
performance when dealing with the most common cases (e.g., float
and
int
values). Other types will fall into a more general Keyframe class that
treats its values as Objects. Unless your animation requires dealing with a custom type
or a data structure that needs to be animated directly (and evaluated using an implementation
of TypeEvaluator
), you should stick to using float and int as animations using those
types have lower runtime overhead than other types.
Summary
Public constructors | |
---|---|
Keyframe()
|
Public methods | |
---|---|
abstract
Keyframe<T>
|
clone()
|
float
|
getFraction()
Gets the time for this keyframe, as a fraction of the overall animation duration. |
Interpolator
|
getInterpolator()
Gets the optional interpolator for this Keyframe. |
Class<?>
|
getType()
Gets the type of keyframe. |
abstract
T
|
getValue()
Gets the value for this Keyframe. |
boolean
|
hasValue()
Indicates whether this keyframe has a valid value. |
static
Keyframe<Float>
|
ofFloat(float fraction)
Constructs a Keyframe object with the given time. |
static
Keyframe<Float>
|
ofFloat(float fraction, float value)
Constructs a Keyframe object with the given time and value. |
static
Keyframe<Integer>
|
ofInt(float fraction, int value)
Constructs a Keyframe object with the given time and value. |
static
Keyframe<Integer>
|
ofInt(float fraction)
Constructs a Keyframe object with the given time. |
static
<T>
Keyframe<T>
|
ofObject(float fraction, T value)
Constructs a Keyframe object with the given time and value. |
static
<T>
Keyframe<T>
|
ofObject(float fraction)
Constructs a Keyframe object with the given time. |
void
|
setFraction(float fraction)
Sets the time for this keyframe, as a fraction of the overall animation duration. |
void
|
setInterpolator(Interpolator interpolator)
Sets the optional interpolator for this Keyframe. |
abstract
void
|
setValue(T value)
Sets the value for this Keyframe. |
Inherited methods | |
---|---|
Public constructors
Keyframe
public Keyframe ()
Public methods
getFraction
public float getFraction ()
Gets the time for this keyframe, as a fraction of the overall animation duration.
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.
Value is between 0.0 and 1.0 inclusive. |
getInterpolator
public Interpolator getInterpolator ()
Gets the optional interpolator for this Keyframe. A value of null
indicates
that there is no interpolation, which is the same as linear interpolation.
Returns | |
---|---|
Interpolator |
The optional interpolator for this Keyframe. |
getType
public Class<?> getType ()
Gets the type of keyframe. This information is used by ValueAnimator to determine the type of
TypeEvaluator
to use when calculating values between keyframes. The type is based
on the type of Keyframe created.
Returns | |
---|---|
Class<?> |
The type of the value stored in the Keyframe. |
getValue
public abstract T getValue ()
Gets the value for this Keyframe.
Returns | |
---|---|
T |
The value for this Keyframe. |
hasValue
public boolean hasValue ()
Indicates whether this keyframe has a valid value. This method is called internally when
an ObjectAnimator
first starts; keyframes without values are assigned values at
that time by deriving the value for the property from the target object.
Returns | |
---|---|
boolean |
boolean Whether this object has a value assigned. |
ofFloat
public static Keyframe<Float> ofFloat (float fraction)
Constructs a Keyframe object with the given time. The value at this time will be derived
from the target object when the animation first starts (note that this implies that keyframes
with no initial value must be used as part of an ObjectAnimator
).
The time defines the
time, as a proportion of an overall animation's duration, at which the value will hold true
for the animation. The value for the animation between keyframes will be calculated as
an interpolation between the values at those keyframes.
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 is between 0.0 and 1.0 inclusive. |
Returns | |
---|---|
Keyframe<Float> |
ofFloat
public static Keyframe<Float> ofFloat (float fraction, float value)
Constructs a Keyframe object with the given time and value. The time defines the time, as a proportion of an overall animation's duration, at which the value will hold true for the animation. The value for the animation between keyframes will be calculated as an interpolation between the values at those keyframes.
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 is between 0.0 and 1.0 inclusive. |
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<Float> |
ofInt
public static Keyframe<Integer> ofInt (float fraction, int value)
Constructs a Keyframe object with the given time and value. The time defines the time, as a proportion of an overall animation's duration, at which the value will hold true for the animation. The value for the animation between keyframes will be calculated as an interpolation between the values at those keyframes.
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 is between 0.0 and 1.0 inclusive. |
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<Integer> |
ofInt
public static Keyframe<Integer> ofInt (float fraction)
Constructs a Keyframe object with the given time. The value at this time will be derived
from the target object when the animation first starts (note that this implies that keyframes
with no initial value must be used as part of an ObjectAnimator
).
The time defines the
time, as a proportion of an overall animation's duration, at which the value will hold true
for the animation. The value for the animation between keyframes will be calculated as
an interpolation between the values at those keyframes.
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 is between 0.0 and 1.0 inclusive. |
Returns | |
---|---|
Keyframe<Integer> |
ofObject
public static Keyframe<T> ofObject (float fraction, T value)
Constructs a Keyframe object with the given time and value. The time defines the time, as a proportion of an overall animation's duration, at which the value will hold true for the animation. The value for the animation between keyframes will be calculated as an interpolation between the values at those keyframes.
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 is between 0.0 and 1.0 inclusive. |
value |
T : 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<T> |
ofObject
public static Keyframe<T> ofObject (float fraction)
Constructs a Keyframe object with the given time. The value at this time will be derived
from the target object when the animation first starts (note that this implies that keyframes
with no initial value must be used as part of an ObjectAnimator
).
The time defines the
time, as a proportion of an overall animation's duration, at which the value will hold true
for the animation. The value for the animation between keyframes will be calculated as
an interpolation between the values at those keyframes.
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 is between 0.0 and 1.0 inclusive. |
Returns | |
---|---|
Keyframe<T> |
setFraction
public void setFraction (float fraction)
Sets the time for this keyframe, as a fraction of the overall animation duration.
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.
Value is between 0.0 and 1.0 inclusive. |
setInterpolator
public void setInterpolator (Interpolator interpolator)
Sets the optional interpolator for this Keyframe. A value of null
indicates
that there is no interpolation, which is the same as linear interpolation.
Parameters | |
---|---|
interpolator |
Interpolator |
setValue
public abstract void setValue (T value)
Sets the value for this Keyframe.
Parameters | |
---|---|
value |
T : value for this Keyframe.
|