Skip to content

Most visited

Recently visited

navigation
Added in API level 11

Keyframe

public abstract class Keyframe
extends Object implements Cloneable

java.lang.Object
   ↳ android.animation.Keyframe


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 TimeInterpolator 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 clone()

Creates and returns a copy of this Object.

float getFraction()

Gets the time for this keyframe, as a fraction of the overall animation duration.

TimeInterpolator getInterpolator()

Gets the optional interpolator for this Keyframe.

Class getType()

Gets the type of keyframe.

abstract Object getValue()

Gets the value for this Keyframe.

boolean hasValue()

Indicates whether this keyframe has a valid value.

static Keyframe ofFloat(float fraction, float value)

Constructs a Keyframe object with the given time and value.

static Keyframe ofFloat(float fraction)

Constructs a Keyframe object with the given time.

static Keyframe ofInt(float fraction)

Constructs a Keyframe object with the given time.

static Keyframe ofInt(float fraction, int value)

Constructs a Keyframe object with the given time and value.

static Keyframe ofObject(float fraction)

Constructs a Keyframe object with the given time.

static Keyframe ofObject(float fraction, Object value)

Constructs a Keyframe object with the given time and value.

void setFraction(float fraction)

Sets the time for this keyframe, as a fraction of the overall animation duration.

void setInterpolator(TimeInterpolator interpolator)

Sets the optional interpolator for this Keyframe.

abstract void setValue(Object value)

Sets the value for this Keyframe.

Inherited methods

From class java.lang.Object

Public constructors

Keyframe

Added in API level 11
Keyframe ()

Public methods

clone

Added in API level 11
Keyframe clone ()

Creates and returns a copy of this Object. The default implementation returns a so-called "shallow" copy: It creates a new instance of the same class and then copies the field values (including object references) from this instance to the new instance. A "deep" copy, in contrast, would also recursively clone nested objects. A subclass that needs to implement this kind of cloning should call super.clone() to create the new instance and then create deep copies of the nested, mutable objects.

Returns
Keyframe a copy of this object.

getFraction

Added in API level 11
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.

getInterpolator

Added in API level 11
TimeInterpolator 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
TimeInterpolator The optional interpolator for this Keyframe.

getType

Added in API level 11
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

Added in API level 11
Object getValue ()

Gets the value for this Keyframe.

Returns
Object The value for this Keyframe.

hasValue

Added in API level 11
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

Added in API level 11
Keyframe 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 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

ofFloat

Added in API level 11
Keyframe 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.
Returns
Keyframe

ofInt

Added in API level 11
Keyframe 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.
Returns
Keyframe

ofInt

Added in API level 11
Keyframe 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 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

ofObject

Added in API level 11
Keyframe 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.
Returns
Keyframe

ofObject

Added in API level 11
Keyframe ofObject (float fraction, 
                Object 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 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

setFraction

Added in API level 11
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.

setInterpolator

Added in API level 11
void setInterpolator (TimeInterpolator 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 TimeInterpolator
Returns
void The optional interpolator for this Keyframe.

setValue

Added in API level 11
void setValue (Object value)

Sets the value for this Keyframe.

Parameters
value Object: value for this Keyframe.
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.