belongs to Maven artifact com.android.support:support-dynamic-animation:28.0.0-alpha1
DynamicAnimation
public
abstract
class
DynamicAnimation
extends Object
java.lang.Object | |
↳ | android.support.animation.DynamicAnimation<T extends android.support.animation.DynamicAnimation<T>> |
Known Direct Subclasses |
This class is the base class of physics-based animations. It manages the animation's
lifecycle such as start()
and cancel()
. This base class also handles the common
setup for all the subclass animations. For example, DynamicAnimation supports adding
DynamicAnimation.OnAnimationEndListener
and DynamicAnimation.OnAnimationUpdateListener
so that the important
animation events can be observed through the callbacks. The start conditions for any subclass of
DynamicAnimation can be set using setStartValue(float)
and
setStartVelocity(float)
.
Summary
Nested classes | |
---|---|
interface |
DynamicAnimation.OnAnimationEndListener
An animation listener that receives end notifications from an animation. |
interface |
DynamicAnimation.OnAnimationUpdateListener
Implementors of this interface can add themselves as update listeners
to an |
class |
DynamicAnimation.ViewProperty
ViewProperty holds the access of a property of a |
Constants | |
---|---|
float |
MIN_VISIBLE_CHANGE_ALPHA
The minimum visible change in alpha that can be visible to users. |
float |
MIN_VISIBLE_CHANGE_PIXELS
The minimum visible change in pixels that can be visible to users. |
float |
MIN_VISIBLE_CHANGE_ROTATION_DEGREES
The minimum visible change in degrees that can be visible to users. |
float |
MIN_VISIBLE_CHANGE_SCALE
The minimum visible change in scale that can be visible to users. |
Fields | |
---|---|
public
static
final
DynamicAnimation.ViewProperty |
ALPHA
View's alpha property. |
public
static
final
DynamicAnimation.ViewProperty |
ROTATION
View's rotation property. |
public
static
final
DynamicAnimation.ViewProperty |
ROTATION_X
View's rotationX property. |
public
static
final
DynamicAnimation.ViewProperty |
ROTATION_Y
View's rotationY property. |
public
static
final
DynamicAnimation.ViewProperty |
SCALE_X
View's scaleX property. |
public
static
final
DynamicAnimation.ViewProperty |
SCALE_Y
View's scaleY property. |
public
static
final
DynamicAnimation.ViewProperty |
SCROLL_X
View's scrollX property. |
public
static
final
DynamicAnimation.ViewProperty |
SCROLL_Y
View's scrollY property. |
public
static
final
DynamicAnimation.ViewProperty |
TRANSLATION_X
View's translationX property. |
public
static
final
DynamicAnimation.ViewProperty |
TRANSLATION_Y
View's translationY property. |
public
static
final
DynamicAnimation.ViewProperty |
TRANSLATION_Z
View's translationZ property. |
public
static
final
DynamicAnimation.ViewProperty |
X
View's x property. |
public
static
final
DynamicAnimation.ViewProperty |
Y
View's y property. |
public
static
final
DynamicAnimation.ViewProperty |
Z
View's z property. |
Public methods | |
---|---|
T
|
addEndListener(DynamicAnimation.OnAnimationEndListener listener)
Adds an end listener to the animation for receiving onAnimationEnd callbacks. |
T
|
addUpdateListener(DynamicAnimation.OnAnimationUpdateListener listener)
Adds an update listener to the animation for receiving per-frame animation update callbacks. |
void
|
cancel()
Cancels the on-going animation. |
float
|
getMinimumVisibleChange()
Returns the minimum change in the animation property that could be visibly different to users. |
boolean
|
isRunning()
Returns whether the animation is currently running. |
void
|
removeEndListener(DynamicAnimation.OnAnimationEndListener listener)
Removes the end listener from the animation, so as to stop receiving animation end callbacks. |
void
|
removeUpdateListener(DynamicAnimation.OnAnimationUpdateListener listener)
Removes the update listener from the animation, so as to stop receiving animation update callbacks. |
T
|
setMaxValue(float max)
Sets the max value of the animation. |
T
|
setMinValue(float min)
Sets the min value of the animation. |
T
|
setMinimumVisibleChange(float minimumVisibleChange)
This method sets the minimal change of animation value that is visible to users, which helps determine a reasonable threshold for the animation's termination condition. |
T
|
setStartValue(float startValue)
Sets the start value of the animation. |
T
|
setStartVelocity(float startVelocity)
Start velocity of the animation. |
void
|
start()
Starts an animation. |
Inherited methods | |
---|---|
From
class
java.lang.Object
|
Constants
MIN_VISIBLE_CHANGE_ALPHA
float MIN_VISIBLE_CHANGE_ALPHA
The minimum visible change in alpha that can be visible to users.
Constant Value: 0.00390625
MIN_VISIBLE_CHANGE_PIXELS
float MIN_VISIBLE_CHANGE_PIXELS
The minimum visible change in pixels that can be visible to users.
Constant Value: 1.0
MIN_VISIBLE_CHANGE_ROTATION_DEGREES
float MIN_VISIBLE_CHANGE_ROTATION_DEGREES
The minimum visible change in degrees that can be visible to users.
Constant Value: 0.1
MIN_VISIBLE_CHANGE_SCALE
float MIN_VISIBLE_CHANGE_SCALE
The minimum visible change in scale that can be visible to users.
Constant Value: 0.002
Fields
ROTATION_X
DynamicAnimation.ViewProperty ROTATION_X
View's rotationX property.
ROTATION_Y
DynamicAnimation.ViewProperty ROTATION_Y
View's rotationY property.
TRANSLATION_X
DynamicAnimation.ViewProperty TRANSLATION_X
View's translationX property.
TRANSLATION_Y
DynamicAnimation.ViewProperty TRANSLATION_Y
View's translationY property.
TRANSLATION_Z
DynamicAnimation.ViewProperty TRANSLATION_Z
View's translationZ property.
Public methods
addEndListener
T addEndListener (DynamicAnimation.OnAnimationEndListener listener)
Adds an end listener to the animation for receiving onAnimationEnd callbacks. If the listener
is null
or has already been added to the list of listeners for the animation, no op.
Parameters | |
---|---|
listener |
DynamicAnimation.OnAnimationEndListener : the listener to be added |
Returns | |
---|---|
T |
the animation to which the listener is added |
addUpdateListener
T addUpdateListener (DynamicAnimation.OnAnimationUpdateListener listener)
Adds an update listener to the animation for receiving per-frame animation update callbacks.
If the listener is null
or has already been added to the list of listeners for the
animation, no op.
Note that update listener should only be added before the start of the animation.
Parameters | |
---|---|
listener |
DynamicAnimation.OnAnimationUpdateListener : the listener to be added |
Returns | |
---|---|
T |
the animation to which the listener is added |
Throws | |
---|---|
UnsupportedOperationException |
if the update listener is added after the animation has started |
cancel
void cancel ()
Cancels the on-going animation. If the animation hasn't started, no op. Note that this method should only be called on main thread.
Throws | |
---|---|
AndroidRuntimeException |
if this method is not called on the main thread |
getMinimumVisibleChange
float getMinimumVisibleChange ()
Returns the minimum change in the animation property that could be visibly different to users.
Returns | |
---|---|
float |
minimum change in property value that is visible to users |
isRunning
boolean isRunning ()
Returns whether the animation is currently running.
Returns | |
---|---|
boolean |
true if the animation is currently running, false otherwise
|
removeEndListener
void removeEndListener (DynamicAnimation.OnAnimationEndListener listener)
Removes the end listener from the animation, so as to stop receiving animation end callbacks.
Parameters | |
---|---|
listener |
DynamicAnimation.OnAnimationEndListener : the listener to be removed
|
removeUpdateListener
void removeUpdateListener (DynamicAnimation.OnAnimationUpdateListener listener)
Removes the update listener from the animation, so as to stop receiving animation update callbacks.
Parameters | |
---|---|
listener |
DynamicAnimation.OnAnimationUpdateListener : the listener to be removed
|
setMaxValue
T setMaxValue (float max)
Sets the max value of the animation. Animations will not animate beyond their max value. Whether or not animation will come to an end when max value is reached is dependent on the child animation's implementation.
Parameters | |
---|---|
max |
float : maximum value of the property to be animated |
Returns | |
---|---|
T |
the Animation whose max value is being set |
setMinValue
T setMinValue (float min)
Sets the min value of the animation. Animations will not animate beyond their min value. Whether or not animation will come to an end when min value is reached is dependent on the child animation's implementation.
Parameters | |
---|---|
min |
float : minimum value of the property to be animated |
Returns | |
---|---|
T |
the Animation whose min value is being set |
setMinimumVisibleChange
T setMinimumVisibleChange (float minimumVisibleChange)
This method sets the minimal change of animation value that is visible to users, which helps
determine a reasonable threshold for the animation's termination condition. It is critical
to set the minimal visible change for custom properties (i.e. non-ViewProperty
s)
unless the custom property is in pixels.
For custom properties, this minimum visible change defaults to change in pixel
(i.e. MIN_VISIBLE_CHANGE_PIXELS
. It is recommended to adjust this value that is
reasonable for the property to be animated. A general rule of thumb to calculate such a value
is: minimum visible change = range of custom property value / corresponding pixel range. For
example, if the property to be animated is a progress (from 0 to 100) that corresponds to a
200-pixel change. Then the min visible change should be 100 / 200. (i.e. 0.5).
It's not necessary to call this method when animating DynamicAnimation.ViewProperty
s, as the
minimum visible change will be derived from the property. For example, if the property to be
animated is in pixels (i.e. TRANSLATION_X
, TRANSLATION_Y
,
TRANSLATION_Z
, @SCROLL_X
or SCROLL_Y
), the default minimum visible
change is 1 (pixel). For ROTATION
, ROTATION_X
or ROTATION_Y
, the
animation will use MIN_VISIBLE_CHANGE_ROTATION_DEGREES
as the min visible change,
which is 1/10. Similarly, the minimum visible change for alpha (
i.e. MIN_VISIBLE_CHANGE_ALPHA
is defined as 1 / 256.
Parameters | |
---|---|
minimumVisibleChange |
float : minimum change in property value that is visible to usersValue is 0.0 or greater. |
Returns | |
---|---|
T |
the animation whose min visible change is being set |
Throws | |
---|---|
IllegalArgumentException |
if the given threshold is not positive |
setStartValue
T setStartValue (float startValue)
Sets the start value of the animation. If start value is not set, the animation will get the current value for the view's property, and use that as the start value.
Parameters | |
---|---|
startValue |
float : start value for the animation |
Returns | |
---|---|
T |
the Animation whose start value is being set |
setStartVelocity
T setStartVelocity (float startVelocity)
Start velocity of the animation. Default velocity is 0. Unit: change in property per second (e.g. pixels per second, scale/alpha value change per second).
Note when using a fixed value as the start velocity (as opposed to getting the velocity through touch events), it is recommended to define such a value in dp/second and convert it to pixel/second based on the density of the screen to achieve a consistent look across different screens.
To convert from dp/second to pixel/second:
float pixelPerSecond = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpPerSecond, getResources().getDisplayMetrics());
Parameters | |
---|---|
startVelocity |
float : start velocity of the animation |
Returns | |
---|---|
T |
the Animation whose start velocity is being set |
start
void start ()
Starts an animation. If the animation has already been started, no op. Note that calling
start()
will not immediately set the property value to start value of the animation.
The property values will be changed at each animation pulse, which happens before the draw
pass. As a result, the changes will be reflected in the next frame, the same as if the values
were set immediately. This method should only be called on main thread.
Throws | |
---|---|
AndroidRuntimeException |
if this method is not called on the main thread |
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2024-04-11 UTC.