Build 1.0_r1(from source)

android.view.animation
Class Animation

java.lang.Object
  extended by android.view.animation.Animation
Direct Known Subclasses:
AlphaAnimation, AnimationSet, RotateAnimation, ScaleAnimation, TranslateAnimation

public abstract class Animation
extends Object

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


Nested Class Summary
static interface Animation.AnimationListener
          An animation listener receives notifications from an animation.
protected static class Animation.Description
          Utility class to parse a string description of a size.
 
Field Summary
static int ABSOLUTE
          The specified dimension is an absolute number of pixels.
static int INFINITE
          Repeat the animation indefinitely.
(package private)  boolean mCycleFlip
          Set by getTransformation(long, Transformation) when the animation repeats in REVERSE mode.
(package private)  long mDuration
          The duration of one animation cycle in milliseconds.
(package private)  boolean mEnded
          Set by getTransformation(long, Transformation) when the animation ends.
(package private)  boolean mFillAfter
          Indicates whether the animation transformation should be applied after the animation ends.
(package private)  boolean mFillBefore
          Indicates whether the animation transformation should be applied before the animation starts.
(package private)  boolean mInitialized
          This value must be set to true by initialize(int, int, int, int).
(package private)  Interpolator mInterpolator
          The interpolator used by the animation to smooth the movement.
(package private)  Animation.AnimationListener mListener
          The animation listener to be notified when the animation starts, ends or repeats.
(package private)  int mRepeatCount
          The number of times the animation must repeat.
(package private)  int mRepeated
          Indicates how many times the animation was repeated.
(package private)  int mRepeatMode
          The behavior of the animation when it repeats.
(package private)  boolean mStarted
          Set by getTransformation(long, Transformation) when the animation starts.
(package private)  long mStartOffset
          The delay in milliseconds after which the animation must start.
(package private)  long mStartTime
          The time in milliseconds at which the animation must start;
static 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.
static int RELATIVE_TO_SELF
          The specified dimension holds a float and should be multiplied by the height or width of the object being animated.
static 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.
static 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).
static 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.
static int ZORDER_BOTTOM
          Requests that the content being animated be forced under all other content for the duration of the animation.
static int ZORDER_NORMAL
          Requests that the content being animated be kept in its current Z order.
static int ZORDER_TOP
          Requests that the content being animated be forced on top of all other content for the duration of the animation.
 
Constructor Summary
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.
 
Method Summary
protected  void applyTransformation(float interpolatedTime, Transformation t)
          Helper for getTransformation.
protected  void ensureInterpolator()
          Gurantees that this animation has an interpolator.
 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.
protected  float resolveSize(int type, float value, int size, int parentSize)
          Convert the information in the description of a size to an actual dimension
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INFINITE

public static final int INFINITE
Repeat the animation indefinitely.

See Also:
Constant Field Values

RESTART

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.

See Also:
Constant Field Values

REVERSE

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).

See Also:
Constant Field Values

START_ON_FIRST_FRAME

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.

See Also:
Constant Field Values

ABSOLUTE

public static final int ABSOLUTE
The specified dimension is an absolute number of pixels.

See Also:
Constant Field Values

RELATIVE_TO_SELF

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.

See Also:
Constant Field Values

RELATIVE_TO_PARENT

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.

See Also:
Constant Field Values

ZORDER_NORMAL

public static final int ZORDER_NORMAL
Requests that the content being animated be kept in its current Z order.

See Also:
Constant Field Values

ZORDER_TOP

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.

See Also:
Constant Field Values

ZORDER_BOTTOM

public static final int ZORDER_BOTTOM
Requests that the content being animated be forced under all other content for the duration of the animation.

See Also:
Constant Field Values

mEnded

boolean mEnded
Set by getTransformation(long, Transformation) when the animation ends.


mStarted

boolean mStarted
Set by getTransformation(long, Transformation) when the animation starts.


mCycleFlip

boolean mCycleFlip
Set by getTransformation(long, Transformation) when the animation repeats in REVERSE mode.


mInitialized

boolean mInitialized
This value must be set to true by initialize(int, int, int, int). It indicates the animation was successfully initialized and can be played.


mFillBefore

boolean mFillBefore
Indicates whether the animation transformation should be applied before the animation starts.


mFillAfter

boolean mFillAfter
Indicates whether the animation transformation should be applied after the animation ends.


mStartTime

long mStartTime
The time in milliseconds at which the animation must start;


mStartOffset

long mStartOffset
The delay in milliseconds after which the animation must start. When the start offset is > 0, the start time of the animation is startTime + startOffset.


mDuration

long mDuration
The duration of one animation cycle in milliseconds.


mRepeatCount

int mRepeatCount
The number of times the animation must repeat. By default, an animation repeats indefinitely.


mRepeated

int mRepeated
Indicates how many times the animation was repeated.


mRepeatMode

int mRepeatMode
The behavior of the animation when it repeats. The repeat mode is either RESTART or REVERSE.


mInterpolator

Interpolator mInterpolator
The interpolator used by the animation to smooth the movement.


mListener

Animation.AnimationListener mListener
The animation listener to be notified when the animation starts, ends or repeats.

Constructor Detail

Animation

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


Animation

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
Method Detail

reset

public void reset()
Reset the initialization state of this animation.

See Also:
initialize(int, int, int, int)

isInitialized

public boolean isInitialized()
Whether or not the animation has been initialized.

Returns:
Has this animation been initialized.
See Also:
initialize(int, int, int, int)

initialize

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, android.view.animation.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

setInterpolator

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.

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

setInterpolator

public void setInterpolator(Interpolator i)
Sets the acceleration curve for this animation. Defaults to a linear interpolation.

Parameters:
i - The interpolator which defines the acceleration curve

setStartOffset

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.

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

setDuration

public void setDuration(long durationMillis)
How long this animation should last.

Parameters:
durationMillis - Duration in milliseconds

restrictDuration

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.

scaleCurrentDuration

public void scaleCurrentDuration(float scale)
How much to scale the duration by.

Parameters:
scale - The amount to scale the duration.

setStartTime

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 AnimationUtils.currentAnimationTimeMillis() instead of System.currentTimeMillis().

Parameters:
startTimeMillis - the start time in milliseconds

start

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


startNow

public void startNow()
Convenience method to start the animation at the current time in milliseconds.


setRepeatMode

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.

Parameters:
repeatMode - RESTART or REVERSE

setRepeatCount

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.

Parameters:
repeatCount - the number of times the animation should be repeated

setFillBefore

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.

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

setFillAfter

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.

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

setZAdjustment

public void setZAdjustment(int zAdjustment)
Set the Z ordering mode to use while running the animation.

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

getInterpolator

public Interpolator getInterpolator()
Gets the acceleration curve type for this animation.

Returns:
the Interpolator associated to this animation

getStartTime

public long getStartTime()
When this animation should start. If the animation has not startet yet, this method might return START_ON_FIRST_FRAME.

Returns:
the time in milliseconds when the animation should start or START_ON_FIRST_FRAME

getDuration

public long getDuration()
How long this animation should last

Returns:
the duration in milliseconds of the animation

getStartOffset

public long getStartOffset()
When this animation should start, relative to StartTime

Returns:
the start offset in milliseconds

getRepeatMode

public int getRepeatMode()
Defines what this animation should do when it reaches the end.

Returns:
either one of REVERSE or RESTART

getRepeatCount

public int getRepeatCount()
Defines how many times the animation should repeat. The default value is 0.

Returns:
the number of times the animation should repeat, or INFINITE

getFillBefore

public boolean getFillBefore()
If fillBefore is true, this animation will apply its transformation before the start time of the animation.

Returns:
true if the animation applies its transformation before it starts

getFillAfter

public boolean getFillAfter()
If fillAfter is true, this animation will apply its transformation after the end time of the animation.

Returns:
true if the animation applies its transformation after it ends

getZAdjustment

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

Returns:
Returns one of ZORDER_NORMAL, ZORDER_TOP, or ZORDER_BOTTOM.

willChangeTransformationMatrix

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

willChangeBounds

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

setAnimationListener

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

ensureInterpolator

protected void ensureInterpolator()
Gurantees that this animation has an interpolator. Will use a AccelerateDecelerateInterpolator is nothing else was specified.


getTransformation

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

hasStarted

public boolean hasStarted()

Indicates whether this animation has started or not.

Returns:
true if the animation has started, false otherwise

hasEnded

public boolean hasEnded()

Indicates whether this animation has ended or not.

Returns:
true if the animation has ended, false otherwise

applyTransformation

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.

resolveSize

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

Build 1.0_r1(from source)

Please submit a feedback, bug or feature