Most visited

Recently visited

Added in API level 11

Animator

public abstract class Animator
extends Object implements Cloneable

java.lang.Object
   ↳ android.animation.Animator
Known Direct Subclasses
Known Indirect Subclasses


这是为动画提供基本支持的类的超类,这些动画可以开始,结束,并且可以添加 AnimatorListeners

Summary

Nested classes

interface Animator.AnimatorListener

动画侦听器从动画接收通知。

interface Animator.AnimatorPauseListener

当动画是pausedresumed时,暂停侦听器从动画接收通知。

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

获取一套 Animator.AnimatorListener对象当前侦听此事件上 Animator对象。

abstract long getStartDelay()

调用 start()后延迟处理动画的时间量(以毫秒为单位)。

long getTotalDuration()

获取动画的总持续时间,计算动画序列,启动延迟和重复。

boolean isPaused()

返回此动画制作者当前是否处于暂停状态。

abstract boolean isRunning()

返回此Animator当前是否正在运行(已经启动并且已经超过了任何初始启动延迟期并且尚未结束)。

boolean isStarted()

返回此Animator是否已启动且尚未结束。

void pause()

暂停正在运行的动画。

void removeAllListeners()

从该对象中移除所有 listenerspauseListeners

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)

调用 start()后延迟处理动画的时间量(以毫秒为单位)。

void setTarget(Object target)

设置其属性将由此动画制作动画的目标对象。

void setupEndValues()

此方法告诉对象使用适当的信息来提取动画的结尾值。

void setupStartValues()

该方法告诉对象使用适当的信息来提取动画的起始值。

void start()

开始这个动画。

Inherited methods

From class java.lang.Object

Constants

DURATION_INFINITE

Added in API level 24
long DURATION_INFINITE

用于指示无限持续时间的值(例如动画师无限重复时)。

常量值:-1(0xffffffffffffffff)

Public constructors

Animator

Added in API level 11
Animator ()

Public methods

addListener

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

addPauseListener

Added in API level 19
void addPauseListener (Animator.AnimatorPauseListener listener)

向此动画制作工具添加暂停侦听器。

Parameters
listener Animator.AnimatorPauseListener: the listener to be added to the current set of pause listeners for this animation.

cancel

Added in API level 11
void cancel ()

取消动画。 end()不同, cancel()导致动画在其轨道上停止,向其听众发送onAnimationCancel(Animator) ,然后发送onAnimationEnd(Animator)消息。

必须在运行动画的线程上调用此方法。

clone

Added in API level 11
Animator clone ()

创建并返回此对象的副本。 “复制”的确切含义可能取决于对象的类别。 一般意图是,对于任何对象x ,表达式:

 x.clone() != x
will be true, and that the expression:
 x.clone().getClass() == x.getClass()
will be true, but these are not absolute requirements. While it is typically the case that:
 x.clone().equals(x)
will be 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.

end

Added in API level 11
void end ()

结束动画。 这会导致动画指定被动画属性的最终值,然后在其侦听器上调用onAnimationEnd(Animator)方法。

必须在运行动画的线程上调用此方法。

getDuration

Added in API level 11
long getDuration ()

获取动画的持续时间。

Returns
long The length of the animation, in milliseconds.

getInterpolator

Added in API level 18
TimeInterpolator getInterpolator ()

返回此动画使用的定时插补器。

Returns
TimeInterpolator The timing interpolator for this animation.

getListeners

Added in API level 11
ArrayList<Animator.AnimatorListener> getListeners ()

获取一套 Animator.AnimatorListener对象当前侦听此事件上 Animator对象。

Returns
ArrayList<Animator.AnimatorListener> ArrayList The set of listeners.

getStartDelay

Added in API level 11
long getStartDelay ()

调用 start()后延迟处理动画的时间量(以毫秒为单位)。

Returns
long the number of milliseconds to delay running the animation

getTotalDuration

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

isPaused

Added in API level 19
boolean isPaused ()

返回此动画制作者当前是否处于暂停状态。

Returns
boolean True if the animator is currently paused, false otherwise.

也可以看看:

isRunning

Added in API level 11
boolean isRunning ()

返回此Animator当前是否正在运行(已经启动并且已经超过了任何初始启动延迟期并且尚未结束)。

Returns
boolean Whether the Animator is running.

isStarted

Added in API level 14
boolean isStarted ()

返回此Animator是否已启动且尚未结束。 对于可重复使用的动画师(大多数动画师除了由createCircularReveal()生成的一次性动画制作者createCircularReveal() ),此状态是isRunning()的超集,因为具有非零startDelay的动画师将在延迟阶段期间为isStarted()返回真,而isRunning()将返回只有在延迟阶段完成后才为真。 不可重用的动画制作者在启动后将始终返回true,因为它们无法返回到未启动状态。

Returns
boolean Whether the Animator has been started and not yet ended.

pause

Added in API level 19
void pause ()

暂停正在运行的动画。 该方法只应在与动画相同的线程上调用。 如果动画尚未started或从此结束,则该呼叫将被忽略。 通过调用resume()可以恢复暂停的动画。

也可以看看:

removeAllListeners

Added in API level 11
void removeAllListeners ()

从该对象中移除所有 listenerspauseListeners

removeListener

Added in API level 11
void removeListener (Animator.AnimatorListener listener)

从侦听此动画的集合中删除侦听器。

Parameters
listener Animator.AnimatorListener: the listener to be removed from the current set of listeners for this animation.

removePauseListener

Added in API level 19
void removePauseListener (Animator.AnimatorPauseListener listener)

从侦听此动画的集合中删除暂停侦听器。

Parameters
listener Animator.AnimatorPauseListener: the listener to be removed from the current set of pause listeners for this animation.

resume

Added in API level 19
void resume ()

恢复暂停的动画,导致动画制作者在暂停时停止播放。 该方法只应在与动画相同的线程上调用。 对当前未暂停的动画制作者调用resume()将被忽略。

也可以看看:

setDuration

Added in API level 11
Animator setDuration (long duration)

设置动画的持续时间。

Parameters
duration long: The length of the animation, in milliseconds.
Returns
Animator

setInterpolator

Added in API level 11
void setInterpolator (TimeInterpolator value)

时间插值器用于计算动画的已用部分。 内插器确定动画是以线性还是非线性运动(如加速度和减速度)运行。 默认值是AccelerateDecelerateInterpolator

Parameters
value TimeInterpolator: the interpolator to be used by this animation

setStartDelay

Added in API level 11
void setStartDelay (long startDelay)

调用 start()后延迟处理动画的时间量(以毫秒为单位)。

Parameters
startDelay long: The amount of the delay, in milliseconds

setTarget

Added in API level 11
void setTarget (Object target)

设置其属性将由此动画制作动画的目标对象。 并非所有子类都在目标对象上运行(例如, ValueAnimator ,但是此方法位于超类上,以方便与处理目标的子类进行通用处理。

注意:目标被内部存储为弱引用,以避免动画师直接引用旧目标而导致资源泄漏。 因此,你应该确保动画师的目标总是在其他地方有一个很好的参考。

Parameters
target Object: The object being animated

setupEndValues

Added in API level 11
void setupEndValues ()

此方法告诉对象使用适当的信息来提取动画的结尾值。 例如,一个AnimatorSet对象会将这个调用传递给它的子对象,告诉它们设置这些值。 ObjectAnimator对象将使用它所拥有的关于其目标对象和PropertyValuesHolder对象的信息来获取其属性的起始值。 ValueAnimator对象将忽略该请求,因为它没有足够的信息(如目标对象)来收集这些值。

setupStartValues

Added in API level 11
void setupStartValues ()

该方法告诉对象使用适当的信息来提取动画的起始值。 例如,一个AnimatorSet对象会将这个调用传递给它的子对象,告诉它们设置这些值。 ObjectAnimator对象将使用它所拥有的关于其目标对象和PropertyValuesHolder对象的信息来获取其属性的起始值。 ValueAnimator对象将忽略该请求,因为它没有足够的信息(如目标对象)来收集这些值。

start

Added in API level 11
void start ()

开始这个动画。 如果动画具有非零的startDelay,则动画将在延迟消逝后开始运行。 非延迟动画将立即设置其初始值,然后对此动画制作者的任何侦听器调用onAnimationStart(Animator)

通过调用此方法开始的动画将在调用此方法的线程上运行。 这个线程应该有一个Looper(如果不是这种情况,将会抛出一个运行时异常)。 此外,如果动画会为视图层次结构中的对象的属性制作动画,则调用线程应该是该视图层次结构的UI线程。

Hooray!