public abstract class Animator
extends Object
implements Cloneable
java.lang.Object | |
↳ | android.animation.Animator |
Known Direct Subclasses |
Known Indirect Subclasses |
这是为动画提供基本支持的类的超类,这些动画可以开始,结束,并且可以添加 AnimatorListeners
。
Nested classes |
|
---|---|
interface |
Animator.AnimatorListener
动画侦听器从动画接收通知。 |
interface |
Animator.AnimatorPauseListener |
Constants |
|
---|---|
long |
DURATION_INFINITE 用于指示无限持续时间的值(例如, |
Public constructors |
|
---|---|
Animator() |
Public methods |
|
---|---|
void |
addListener(Animator.AnimatorListener listener) 将侦听器添加到通过动画生命周期发送事件的侦听器集,例如start,repeat和end。 |
void |
addPauseListener(Animator.AnimatorPauseListener listener) 向此动画制作工具添加暂停侦听器。 |
void |
cancel() 取消动画。 |
Animator |
clone() 创建并返回此对象的副本。 |
void |
end() 结束动画。 |
abstract long |
getDuration() 获取动画的持续时间。 |
TimeInterpolator |
getInterpolator() 返回此动画使用的定时插补器。 |
ArrayList<Animator.AnimatorListener> |
getListeners() 获取一套 |
abstract long |
getStartDelay() 调用 |
long |
getTotalDuration() 获取动画的总持续时间,计算动画序列,启动延迟和重复。 |
boolean |
isPaused() 返回此动画制作者当前是否处于暂停状态。 |
abstract boolean |
isRunning() 返回此Animator当前是否正在运行(已经启动并且已经超过了任何初始启动延迟期并且尚未结束)。 |
boolean |
isStarted() 返回此Animator是否已启动且尚未结束。 |
void |
pause() 暂停正在运行的动画。 |
void |
removeAllListeners() 从该对象中移除所有 |
void |
removeListener(Animator.AnimatorListener listener) 从侦听此动画的集合中删除侦听器。 |
void |
removePauseListener(Animator.AnimatorPauseListener listener) 从侦听此动画的集合中删除暂停侦听器。 |
void |
resume() 恢复暂停的动画,导致动画制作者在暂停时停止播放。 |
abstract Animator |
setDuration(long duration) 设置动画的持续时间。 |
abstract void |
setInterpolator(TimeInterpolator value) 时间插值器用于计算动画的已用部分。 |
abstract void |
setStartDelay(long startDelay) 调用 |
void |
setTarget(Object target) 设置其属性将由此动画制作动画的目标对象。 |
void |
setupEndValues() 此方法告诉对象使用适当的信息来提取动画的结尾值。 |
void |
setupStartValues() 该方法告诉对象使用适当的信息来提取动画的起始值。 |
void |
start() 开始这个动画。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
long DURATION_INFINITE
用于指示无限持续时间的值(例如动画师无限重复时)。
常量值:-1(0xffffffffffffffff)
void addListener (Animator.AnimatorListener listener)
将侦听器添加到通过动画生命周期发送事件的侦听器集,例如start,repeat和end。
Parameters | |
---|---|
listener |
Animator.AnimatorListener : the listener to be added to the current set of listeners for this animation. |
void addPauseListener (Animator.AnimatorPauseListener listener)
向此动画制作工具添加暂停侦听器。
Parameters | |
---|---|
listener |
Animator.AnimatorPauseListener : the listener to be added to the current set of pause listeners for this animation. |
void cancel ()
取消动画。 与end()
不同, cancel()
导致动画在其轨道上停止,向其听众发送onAnimationCancel(Animator)
,然后发送onAnimationEnd(Animator)
消息。
必须在运行动画的线程上调用此方法。
Animator clone ()
创建并返回此对象的副本。 “复制”的确切含义可能取决于对象的类别。 一般意图是,对于任何对象x
,表达式:
will be true, and that the expression:x.clone() != x
will bex.clone().getClass() == x.getClass()
true
, but these are not absolute requirements. While it is typically the case that:
will bex.clone().equals(x)
true
, this is not an absolute requirement.
按照惯例,返回的对象应该通过调用super.clone
获得。 如果一个类和它的所有超类( Object
除外)都遵守这个约定,那么情况就是x.clone().getClass() == x.getClass()
。
按照惯例,这个方法返回的对象应该独立于这个对象(被克隆)。 要实现这种独立性,可能需要在返回super.clone
之前修改对象的一个或多个字段。 通常,这意味着复制包含被克隆对象的内部“深层结构”的任何可变对象,并将这些对象的引用替换为对这些副本的引用。 如果一个类只包含原始字段或对不可变对象的引用,那么通常情况下,不需要修改super.clone
返回的对象中的任何字段。
类Object
的方法clone
执行特定的克隆操作。 首先,如果该对象的类没有实现接口Cloneable
,则引发CloneNotSupportedException
。 请注意,所有阵列都被视为实现接口Cloneable
并且数组类型T[]
的clone
方法的返回类型为T[]
,其中T是任何引用或原始类型。 否则,此方法创建该对象的类的新实例,并使用该对象的相应字段的内容来初始化其所有字段,就像通过赋值一样; 这些字段的内容本身并不克隆。 因此,此方法执行此对象的“浅拷贝”,而不是“深拷贝”操作。
类 Object
本身并不实现接口 Cloneable
,所以在类 Object
的对象上调用 clone
方法将导致在运行时抛出异常。
Returns | |
---|---|
Animator |
a clone of this instance. |
void end ()
结束动画。 这会导致动画指定被动画属性的最终值,然后在其侦听器上调用onAnimationEnd(Animator)
方法。
必须在运行动画的线程上调用此方法。
long getDuration ()
获取动画的持续时间。
Returns | |
---|---|
long |
The length of the animation, in milliseconds. |
TimeInterpolator getInterpolator ()
返回此动画使用的定时插补器。
Returns | |
---|---|
TimeInterpolator |
The timing interpolator for this animation. |
ArrayList<Animator.AnimatorListener> getListeners ()
获取一套 Animator.AnimatorListener
对象当前侦听此事件上 Animator
对象。
Returns | |
---|---|
ArrayList<Animator.AnimatorListener> |
ArrayList
|
long getStartDelay ()
调用 start()
后延迟处理动画的时间量(以毫秒为单位)。
Returns | |
---|---|
long |
the number of milliseconds to delay running the animation |
long getTotalDuration ()
获取动画的总持续时间,计算动画序列,启动延迟和重复。 如果持续时间是无限的,则返回DURATION_INFINITE
。
Returns | |
---|---|
long |
Total time an animation takes to finish, starting from the time start() is called. DURATION_INFINITE will be returned if the animation or any child animation repeats infinite times. |
boolean isPaused ()
返回此动画制作者当前是否处于暂停状态。
Returns | |
---|---|
boolean |
True if the animator is currently paused, false otherwise. |
boolean isRunning ()
返回此Animator当前是否正在运行(已经启动并且已经超过了任何初始启动延迟期并且尚未结束)。
Returns | |
---|---|
boolean |
Whether the Animator is running. |
boolean isStarted ()
返回此Animator是否已启动且尚未结束。 对于可重复使用的动画师(大多数动画师除了由createCircularReveal()
生成的一次性动画制作者createCircularReveal()
),此状态是isRunning()
的超集,因为具有非零startDelay
的动画师将在延迟阶段期间为isStarted()
返回真,而isRunning()
将返回只有在延迟阶段完成后才为真。 不可重用的动画制作者在启动后将始终返回true,因为它们无法返回到未启动状态。
Returns | |
---|---|
boolean |
Whether the Animator has been started and not yet ended. |
void pause ()
暂停正在运行的动画。 该方法只应在与动画相同的线程上调用。 如果动画尚未started
或从此结束,则该呼叫将被忽略。 通过调用resume()
可以恢复暂停的动画。
void removeAllListeners ()
从该对象中移除所有 listeners
和 pauseListeners
。
void removeListener (Animator.AnimatorListener listener)
从侦听此动画的集合中删除侦听器。
Parameters | |
---|---|
listener |
Animator.AnimatorListener : the listener to be removed from the current set of listeners for this animation. |
void removePauseListener (Animator.AnimatorPauseListener listener)
从侦听此动画的集合中删除暂停侦听器。
Parameters | |
---|---|
listener |
Animator.AnimatorPauseListener : the listener to be removed from the current set of pause listeners for this animation. |
void resume ()
恢复暂停的动画,导致动画制作者在暂停时停止播放。 该方法只应在与动画相同的线程上调用。 对当前未暂停的动画制作者调用resume()将被忽略。
Animator setDuration (long duration)
设置动画的持续时间。
Parameters | |
---|---|
duration |
long : The length of the animation, in milliseconds. |
Returns | |
---|---|
Animator |
void setInterpolator (TimeInterpolator value)
时间插值器用于计算动画的已用部分。 内插器确定动画是以线性还是非线性运动(如加速度和减速度)运行。 默认值是AccelerateDecelerateInterpolator
。
Parameters | |
---|---|
value |
TimeInterpolator : the interpolator to be used by this animation |
void setStartDelay (long startDelay)
调用 start()
后延迟处理动画的时间量(以毫秒为单位)。
Parameters | |
---|---|
startDelay |
long : The amount of the delay, in milliseconds |
void setTarget (Object target)
设置其属性将由此动画制作动画的目标对象。 并非所有子类都在目标对象上运行(例如, ValueAnimator
,但是此方法位于超类上,以方便与处理目标的子类进行通用处理。
注意:目标被内部存储为弱引用,以避免动画师直接引用旧目标而导致资源泄漏。 因此,你应该确保动画师的目标总是在其他地方有一个很好的参考。
Parameters | |
---|---|
target |
Object : The object being animated |
void setupEndValues ()
此方法告诉对象使用适当的信息来提取动画的结尾值。 例如,一个AnimatorSet对象会将这个调用传递给它的子对象,告诉它们设置这些值。 ObjectAnimator对象将使用它所拥有的关于其目标对象和PropertyValuesHolder对象的信息来获取其属性的起始值。 ValueAnimator对象将忽略该请求,因为它没有足够的信息(如目标对象)来收集这些值。
void setupStartValues ()
该方法告诉对象使用适当的信息来提取动画的起始值。 例如,一个AnimatorSet对象会将这个调用传递给它的子对象,告诉它们设置这些值。 ObjectAnimator对象将使用它所拥有的关于其目标对象和PropertyValuesHolder对象的信息来获取其属性的起始值。 ValueAnimator对象将忽略该请求,因为它没有足够的信息(如目标对象)来收集这些值。
void start ()
开始这个动画。 如果动画具有非零的startDelay,则动画将在延迟消逝后开始运行。 非延迟动画将立即设置其初始值,然后对此动画制作者的任何侦听器调用onAnimationStart(Animator)
。
通过调用此方法开始的动画将在调用此方法的线程上运行。 这个线程应该有一个Looper(如果不是这种情况,将会抛出一个运行时异常)。 此外,如果动画会为视图层次结构中的对象的属性制作动画,则调用线程应该是该视图层次结构的UI线程。