Android
android.view.animation
public abstract class

android.view.animation.Animation

java.lang.Object
android.view.animation.Animation

Abstraction for an Animation that can be applied to Views, Surfaces, or other objects. See the animation package description file.

Nested Classes
Animation.AnimationListener

An animation listener receives notifications from an animation. 

Animation.Description Utility class to parse a string description of a size. 
Known Direct Subclasses

Summary

XML Attributes

Attribute name Related methods  
android:duration setDuration(long)
 
Amount of time (in milliseconds) for the animation to run. 
android:fillAfter setFillAfter(boolean)
 
When set to true, the animation transformation is applied after the animation is over. 
android:fillBefore setFillBefore(boolean)
 
When set to true, the animation transformation is applied before the animation has started. 
android:interpolator setInterpolator(Interpolator)
 
Defines the interpolator used to smooth the animation movement in time. 
android:repeatCount setRepeatCount(int)
 
Defines how many times the animation should repeat. 
android:repeatMode setRepeatMode(int)
 
Defines the animation behavior when it reaches the end and the repeat count is greater than 0 or infinite. 
android:startOffset setStartOffset(long)
 
Delay in milliseconds before the animation runs, once start time is reached. 
android:zAdjustment setZAdjustment(int)
 
Allows for an adjustment of the Z ordering of the content being animated for the duration of the animation. 

Constants

      Value  
int  ABSOLUTE  The specified dimension is an absolute number of pixels.  0x00000000 
int  INFINITE  Repeat the animation indefinitely.  -1  0xffffffff 
int  RELATIVE_TO_PARENT  The specified dimension holds a float and should be multiplied by the height or width of the parent of the object being animated.  0x00000002 
int  RELATIVE_TO_SELF  The specified dimension holds a float and should be multiplied by the height or width of the object being animated.  0x00000001 
int  RESTART  When the animation reaches the end and the repeat count is INFINTE_REPEAT or a positive value, the animation restarts from the beginning.  0x00000001 
int  REVERSE  When the animation reaches the end and the repeat count is INFINTE_REPEAT or a positive value, the animation plays backward (and then forward again).  0x00000002 
int  START_ON_FIRST_FRAME  Can be used as the start time to indicate the start time should be the current time when getTransformation(long, Transformation) is invoked for the first animation frame.  -1  0xffffffff 
int  ZORDER_BOTTOM  Requests that the content being animated be forced under all other content for the duration of the animation.  -1  0xffffffff 
int  ZORDER_NORMAL  Requests that the content being animated be kept in its current Z order.  0x00000000 
int  ZORDER_TOP  Requests that the content being animated be forced on top of all other content for the duration of the animation.  0x00000001 

Public Constructors

            Animation()
Creates a new animation with a duration of 0ms, the default interpolator, with fillBefore set to true and fillAfter set to false
            Animation(Context context, AttributeSet attrs)
Creates a new animation whose parameters come from the specified context and attributes set.

Public Methods

          long  getDuration()
How long this animation should last
          boolean  getFillAfter()
If fillAfter is true, this animation will apply its transformation after the end time of the animation.
          boolean  getFillBefore()
If fillBefore is true, this animation will apply its transformation before the start time of the animation.
          Interpolator  getInterpolator()
Gets the acceleration curve type for this animation.
          int  getRepeatCount()
Defines how many times the animation should repeat.
          int  getRepeatMode()
Defines what this animation should do when it reaches the end.
          long  getStartOffset()
When this animation should start, relative to StartTime
          long  getStartTime()
When this animation should start.
          boolean  getTransformation(long currentTime, Transformation outTransformation)
Gets the transformation to apply at a specified point in time.
          int  getZAdjustment()
Returns the Z ordering mode to use while running the animation as previously set by setZAdjustment(int).
          boolean  hasEnded()

Indicates whether this animation has ended or not.

          boolean  hasStarted()

Indicates whether this animation has started or not.

          void  initialize(int width, int height, int parentWidth, int parentHeight)
Initialize this animation with the dimensions of the object being animated as well as the objects parents.
          boolean  isInitialized()
Whether or not the animation has been initialized.
          void  reset()
Reset the initialization state of this animation.
          void  restrictDuration(long durationMillis)
Ensure that the duration that this animation will run is not longer than durationMillis.
          void  scaleCurrentDuration(float scale)
How much to scale the duration by.
          void  setAnimationListener(Animation.AnimationListener listener)

Binds an animation listener to this animation.

          void  setDuration(long durationMillis)
How long this animation should last.
          void  setFillAfter(boolean fillAfter)
If fillAfter is true, the transformation that this animation performed will persist when it is finished.
          void  setFillBefore(boolean fillBefore)
If fillBefore is true, this animation will apply its transformation before the start time of the animation.
          void  setInterpolator(Context context, int resID)
Sets the acceleration curve for this animation.
          void  setInterpolator(Interpolator i)
Sets the acceleration curve for this animation.
          void  setRepeatCount(int repeatCount)
Sets how many times the animation should be repeated.
          void  setRepeatMode(int repeatMode)
Defines what this animation should do when it reaches the end.
          void  setStartOffset(long startOffset)
When this animation should start relative to the start time.
          void  setStartTime(long startTimeMillis)
When this animation should start.
          void  setZAdjustment(int zAdjustment)
Set the Z ordering mode to use while running the animation.
          void  start()
Convenience method to start the animation the first time getTransformation(long, Transformation) is invoked.
          void  startNow()
Convenience method to start the animation at the current time in milliseconds.
          boolean  willChangeBounds()

Indicates whether or not this animation will affect the bounds of the animated view.

          boolean  willChangeTransformationMatrix()

Indicates whether or not this animation will affect the transformation matrix.

Protected Methods

          void  applyTransformation(float interpolatedTime, Transformation t)
Helper for getTransformation.
          void  ensureInterpolator()
Gurantees that this animation has an interpolator.
          float  resolveSize(int type, float value, int size, int parentSize)
Convert the information in the description of a size to an actual dimension
Methods inherited from class java.lang.Object

Details

XML Attributes

android:duration

Amount of time (in milliseconds) for the animation to run.

Must be an integer value, such as "100".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol duration.

Related Methods

android:fillAfter

When set to true, the animation transformation is applied after the animation is over. The default value is false.

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol fillAfter.

Related Methods

android:fillBefore

When set to true, the animation transformation is applied before the animation has started. The default value is true.

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol fillBefore.

Related Methods

android:interpolator

Defines the interpolator used to smooth the animation movement in time.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

This corresponds to the global attribute resource symbol interpolator.

android:repeatCount

Defines how many times the animation should repeat. The default value is 0.

May be an integer value, such as "100".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

May be one of the following constant values.

ConstantValueDescription
infinite-1

This corresponds to the global attribute resource symbol repeatCount.

Related Methods

android:repeatMode

Defines the animation behavior when it reaches the end and the repeat count is greater than 0 or infinite. The default value is restart.

Must be one of the following constant values.

ConstantValueDescription
restart1 The animation starts again from the beginning.
reverse2 The animation plays backward.

This corresponds to the global attribute resource symbol repeatMode.

Related Methods

android:startOffset

Delay in milliseconds before the animation runs, once start time is reached.

Must be an integer value, such as "100".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol startOffset.

Related Methods

android:zAdjustment

Allows for an adjustment of the Z ordering of the content being animated for the duration of the animation. The default value is normal.

Must be one of the following constant values.

ConstantValueDescription
normal0 The content being animated be kept in its current Z order.
top1 The content being animated is forced on top of all other content for the duration of the animation.
bottom-1 The content being animated is forced under all other content for the duration of the animation.

This corresponds to the global attribute resource symbol zAdjustment.

Related Methods

Constants

public static final int ABSOLUTE

The specified dimension is an absolute number of pixels.
Constant Value: 0 (0x00000000)

public static final int INFINITE

Repeat the animation indefinitely.
Constant Value: -1 (0xffffffff)

public static final int RELATIVE_TO_PARENT

The specified dimension holds a float and should be multiplied by the height or width of the parent of the object being animated.
Constant Value: 2 (0x00000002)

public static final int RELATIVE_TO_SELF

The specified dimension holds a float and should be multiplied by the height or width of the object being animated.
Constant Value: 1 (0x00000001)

public static final int RESTART

When the animation reaches the end and the repeat count is INFINTE_REPEAT or a positive value, the animation restarts from the beginning.
Constant Value: 1 (0x00000001)

public static final int REVERSE

When the animation reaches the end and the repeat count is INFINTE_REPEAT or a positive value, the animation plays backward (and then forward again).
Constant Value: 2 (0x00000002)

public static final int START_ON_FIRST_FRAME

Can be used as the start time to indicate the start time should be the current time when getTransformation(long, Transformation) is invoked for the first animation frame. This can is useful for short animations.
Constant Value: -1 (0xffffffff)

public static final int ZORDER_BOTTOM

Requests that the content being animated be forced under all other content for the duration of the animation.
Constant Value: -1 (0xffffffff)

public static final int ZORDER_NORMAL

Requests that the content being animated be kept in its current Z order.
Constant Value: 0 (0x00000000)

public static final int ZORDER_TOP

Requests that the content being animated be forced on top of all other content for the duration of the animation.
Constant Value: 1 (0x00000001)

Public Constructors

public Animation()

Creates a new animation with a duration of 0ms, the default interpolator, with fillBefore set to true and fillAfter set to false

public Animation(Context context, AttributeSet attrs)

Creates a new animation whose parameters come from the specified context and attributes set.

Parameters

context the application environment
attrs the set of attributes holding the animation parameters

Public Methods

public long getDuration()

How long this animation should last

Related XML Attributes

Returns

  • the duration in milliseconds of the animation

public boolean getFillAfter()

If fillAfter is true, this animation will apply its transformation after the end time of the animation.

Related XML Attributes

Returns

  • true if the animation applies its transformation after it ends

public boolean getFillBefore()

If fillBefore is true, this animation will apply its transformation before the start time of the animation.

Related XML Attributes

Returns

  • true if the animation applies its transformation before it starts

public Interpolator getInterpolator()

Gets the acceleration curve type for this animation.

Related XML Attributes

Returns

public int getRepeatCount()

Defines how many times the animation should repeat. The default value is 0.

Related XML Attributes

Returns

  • the number of times the animation should repeat, or INFINITE

public int getRepeatMode()

Defines what this animation should do when it reaches the end.

Related XML Attributes

Returns

public long getStartOffset()

When this animation should start, relative to StartTime

Related XML Attributes

Returns

  • the start offset in milliseconds

public long getStartTime()

When this animation should start. If the animation has not startet yet, this method might return START_ON_FIRST_FRAME.

Returns

public boolean getTransformation(long currentTime, Transformation outTransformation)

Gets the transformation to apply at a specified point in time. Implementations of this method should always replace the specified Transformation or document they are doing otherwise.

Parameters

currentTime Where we are in the animation. This is wall clock time.
outTransformation A tranformation object that is provided by the caller and will be filled in by the animation.

Returns

  • True if the animation is still running

public int getZAdjustment()

Returns the Z ordering mode to use while running the animation as previously set by setZAdjustment(int).

Related XML Attributes

Returns

public boolean hasEnded()

Indicates whether this animation has ended or not.

Returns

  • true if the animation has ended, false otherwise

public boolean hasStarted()

Indicates whether this animation has started or not.

Returns

  • true if the animation has started, false otherwise

public void initialize(int width, int height, int parentWidth, int parentHeight)

Initialize this animation with the dimensions of the object being animated as well as the objects parents. (This is to support animation sizes being specifed relative to these dimensions.)

Objects that interpret a Animations should call this method when the sizes of the object being animated and its parent are known, and before calling getTransformation(long, Transformation).

Parameters

width Width of the object being animated
height Height of the object being animated
parentWidth Width of the animated object's parent
parentHeight Height of the animated object's parent

public boolean isInitialized()

Whether or not the animation has been initialized.

Returns

  • Has this animation been initialized.

public void reset()

Reset the initialization state of this animation.

public void restrictDuration(long durationMillis)

Ensure that the duration that this animation will run is not longer than durationMillis. In addition to adjusting the duration itself, this ensures that the repeat count also will not make it run longer than the given time.

Parameters

durationMillis The maximum duration the animation is allowed to run.

public void scaleCurrentDuration(float scale)

How much to scale the duration by.

Parameters

scale The amount to scale the duration.

public void setAnimationListener(Animation.AnimationListener listener)

Binds an animation listener to this animation. The animation listener is notified of animation events such as the end of the animation or the repetition of the animation.

Parameters

listener the animation listener to be notified

public void setDuration(long durationMillis)

How long this animation should last.

Related XML Attributes

Parameters

durationMillis Duration in milliseconds

public void setFillAfter(boolean fillAfter)

If fillAfter is true, the transformation that this animation performed will persist when it is finished. Defaults to false if not set. Note that this applies when using an AnimationSet to chain animations. The transformation is not applied before the AnimationSet itself starts.

Related XML Attributes

Parameters

fillAfter true if the animation should apply its transformation after it ends

public void setFillBefore(boolean fillBefore)

If fillBefore is true, this animation will apply its transformation before the start time of the animation. Defaults to false if not set. Note that this applies when using an AnimationSet to chain animations. The transformation is not applied before the AnimationSet itself starts.

Related XML Attributes

Parameters

fillBefore true if the animation should apply its transformation before it starts

public void setInterpolator(Context context, int resID)

Sets the acceleration curve for this animation. The interpolator is loaded as a resource from the specified context.

Related XML Attributes

Parameters

context The application environment
resID The resource identifier of the interpolator to load

public void setInterpolator(Interpolator i)

Sets the acceleration curve for this animation. Defaults to a linear interpolation.

Related XML Attributes

Parameters

i The interpolator which defines the acceleration curve

public void setRepeatCount(int repeatCount)

Sets how many times the animation should be repeated. If the repeat count is 0, the animation is never repeated. If the repeat count is greater than 0 or INFINITE, the repeat mode will be taken into account. The repeat count if 0 by default.

Related XML Attributes

Parameters

repeatCount the number of times the animation should be repeated

public void setRepeatMode(int repeatMode)

Defines what this animation should do when it reaches the end. This setting is applied only when the repeat count is either greater than 0 or INFINITE. Defaults to RESTART.

Related XML Attributes

Parameters

repeatMode RESTART or REVERSE

public void setStartOffset(long startOffset)

When this animation should start relative to the start time. This is most useful when composing complex animations using an AnimationSet where some of the animations components start at different times.

Related XML Attributes

Parameters

startOffset When this Animation should start, in milliseconds from the start time of the root AnimationSet.

public void setStartTime(long startTimeMillis)

When this animation should start. When the start time is set to START_ON_FIRST_FRAME, the animation will start the first time getTransformation(long, Transformation) is invoked. The time passed to this method should be obtained by calling currentAnimationTimeMillis() instead of currentTimeMillis().

Parameters

startTimeMillis the start time in milliseconds

public void setZAdjustment(int zAdjustment)

Set the Z ordering mode to use while running the animation.

Related XML Attributes

Parameters

zAdjustment The desired mode, one of ZORDER_NORMAL, ZORDER_TOP, or ZORDER_BOTTOM.

public void start()

Convenience method to start the animation the first time getTransformation(long, Transformation) is invoked.

public void startNow()

Convenience method to start the animation at the current time in milliseconds.

public boolean willChangeBounds()

Indicates whether or not this animation will affect the bounds of the animated view. For instance, a fade animation will not affect the bounds whereas a 200% scale animation will.

Returns

  • true if this animation will change the view's bounds

public boolean willChangeTransformationMatrix()

Indicates whether or not this animation will affect the transformation matrix. For instance, a fade animation will not affect the matrix whereas a scale animation will.

Returns

  • true if this animation will change the transformation matrix

Protected Methods

protected void applyTransformation(float interpolatedTime, Transformation t)

Helper for getTransformation. Subclasses should implement this to apply their transforms given an interpolation value. Implementations of this method should always replace the specified Transformation or document they are doing otherwise.

Parameters

interpolatedTime The value of the normalized time (0.0 to 1.0) after it has been run through the interpolation function.
t The Transofrmation object to fill in with the current transforms.

protected void ensureInterpolator()

Gurantees that this animation has an interpolator. Will use a AccelerateDecelerateInterpolator is nothing else was specified.

protected float resolveSize(int type, float value, int size, int parentSize)

Convert the information in the description of a size to an actual dimension

Parameters

type One of Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT.
value The dimension associated with the type parameter
size The size of the object being animated
parentSize The size of the parent of the object being animated

Returns

  • The dimension to use for the animation
Copyright 2007 Google Inc. Build 0.9_r1-98467 - 14 Aug 2008 18:48