Android API 25 (Android 7.1.1 API)


Animator

public abstract class Animator

extends Object implements Cloneable

Added in API level 11

 

java.lang.Object

   ↳ android.animation.Animator

 

已知直接子类:

AnimatorSet

ValueAnimator

 

概述

这是为动画提供基本支持类的超类,可以启动结束并向其添加AnimatorListeners

 

内部类

接口 Animator.AnimatorListener

动画监听器接收来自动画的通知。

接口 Animator.AnimatorPauseListener

暂停侦听器在动画暂停或恢复时从动画接收通知。

 

【公共构造函数】

Animator()

 

【公共方法】

addListener

void addListener (Animator.AnimatorListener listener)

API 11

将监听器添加到在动画生命周期中发送事件的监听器集合,例如startrepeatend

 

addPauseListener

void addPauseListener (Animator.AnimatorPauseListener listener)

API 19

给动画添加暂停监听器。

 

getListeners

ArrayList getListeners ()

API 11

获取当前正在监听此Animator对象上的事件的Animator.AnimatorListener对象集。

 

removeListener

void removeListener (Animator.AnimatorListener listener)

API 11

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

 

removePauseListener

void removePauseListener (Animator.AnimatorPauseListener listener)

API 19

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

 

removeAllListeners

void removeAllListeners ()

API 11

从此对象中删除所有监听器和pauseListeners

 

getDuration

long getDuration ()

API 11

获取动画的持续时间。

 

setDuration

Animator setDuration (long duration)

API 11

设置动画的持续时间。

 

getTotalDuration

long getTotalDuration ()

API 24

获取动画的总持续时间,考虑动画序列,开始延迟和重复。 如果持续时间为无限,则返回DURATION_INFINITE

 

getInterpolator

TimeInterpolator getInterpolator ()

API 18

返回此动画使用的时间插值器。

 

setInterpolator

void setInterpolator (TimeInterpolator value)

API 11

时间内插器用于计算动画的已过分数。 内插器确定动画是否以线性或非线性运动(例如加速和减速)运行。 默认值为AccelerateDecelerateInterpolator

 

getStartDelay

long getStartDelay ()

API 11

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

 

setStartDelay

void setStartDelay (long startDelay)

API 11

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

 

isStarted

boolean isStarted ()

API 14

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

对于可重复使用的Animator(除了通过createCircularReveal()生成的一次性Animator之外,大多数Animator,这个状态是isRunning()的超集,因为具有非零startDelayAnimator在延迟期间将返回isStarted 相位,而isRunning()将只有在延迟阶段完成后才会返回true。 不可重复使用的动画器在启动后总是返回true,因为它们不能返回到非启动状态。

 

isRunning

boolean isRunning ()

API 11

返回此Animator当前是否正在运行(已经开始并且已经超过任何初始startDelay周期但尚未结束)。

 

isPaused

boolean isPaused ()

API 19

返回此Animator当前是否处于暂停状态。

 

start

void start ()

API 11

开始本动画。 如果动画具有非零的startDelay,则动画将在延迟结束后开始运行。 非延迟动画将立即设置其初始值,然后调用onAnimationStart(Animator)用于此Animator的任何监听器。

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

 

pause

void pause ()

API 19

暂停正在运行的动画。 此方法应该只在动画开始的同一个线程上调用。 如果动画尚未开始或者已经结束,则忽略该调用。 暂停的动画可以通过调用resume()恢复。

 

resume

void resume ()

API 19

恢复已暂停的动画,使 animator在暂停时从中断的位置继续。 此方法应该只在动画开始的同一个线程上调用。 对当前未暂停的animatorresume()调用将被忽略。

 

cancel

void cancel ()

API 11

取消动画。 end()不同,cancel()使动画在其轨道中停止,向其侦听器发送onAnimationCancel(Animator),然后是

onAnimationEnd(Animator)消息。

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

 

end

void end ()

API 11

结束动画。 这将导致动画分配正在动画属性的结束值,然后在其侦听器上调用onAnimationEnd(Animator)方法。

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

 

clone

Animator clone ()

API 11

创建并返回此对象的副本。

 

“复制”的精确含义可以取决于对象的类。 一般的意图是,对于任何对象x,表达式:

 x.clone() != x

将是真实的,并且表达式:

 x.clone().getClass() == x.getClass()

将是真的,但这些不是绝对的要求。 虽然通常的情况是:

 x.clone().equals(x)

将是真的,这不是绝对的要求。

按照惯例,返回的对象应该通过调用super.clone获得。 如果一个类及其所有的超类(除了Object)遵循这个约定,将会是 x.clone().getClass() == x.getClass().

 

按照惯例,此方法返回的对象应该独立于此对象(正在克隆)。为了实现这种独立性,可能需要在返回super.clone之前修改该对象的一个或多个字段。通常,这意味着复制包含正在克隆的对象的内部“深层结构”的任何可变对象,并使用对副本的引用替换对这些对象的引用。如果类只包含基本字段或对不可变对象的引用,则通常情况下,super.clone返回的对象中没有字段需要修改。

 

Object的方法克隆执行特定的克隆操作。首先,如果此对象的类未实现接口Cloneable,则会抛出CloneNotSupportedException。注意,所有数组都被认为实现了Cloneable接口,并且数组类型T []clone方法的返回类型是T [],其中T是任何引用或原始类型。否则,此方法将创建此对象的类的一个新实例,并使用此对象的相应字段的内容(如通过赋值)完全初始化其所有字段;字段的内容本身不被克隆。因此,该方法执行该对象的“浅拷贝”,而不是“深拷贝”操作。

 

Object本身不实现接口Cloneable,因此在类为Object的对象上调用clone方法将导致在运行时抛出异常。

 

setTarget

void setTarget (Object target)

API 11

设置其属性将由此动画进行动画处理的目标对象。 不是所有的子类都对目标对象进行操作(例如,ValueAnimator,但是这个方法在超类上,为的是方便地处理那些处理目标的子类。

 

注意:目标作为弱引用存储在内部,以避免由于动画师直接引用旧目标而导致的资源泄露。 因此,您应该确保animator目标总是在其他地方有一个硬引用。

 

setupEndValues

void setupEndValues ()

API 11

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

AnimatorSet对象将该调用传递给它的子对象,以告诉他们设置值。

ObjectAnimator对象将使用其有关其目标对象和PropertyValuesHolder对象的信息来获取其属性的结束值。

ValueAnimator对象将忽略该请求,因为它没有足够的信息(例如目标对象)来收集这些值。

 

setupStartValues

void setupStartValues ()

API 11

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

AnimatorSet对象将该调用传递给它的子对象,以告诉他们设置值。

ObjectAnimator对象将使用其有关其目标对象和PropertyValuesHolder对象的信息来获取其属性的起始值。

ValueAnimator对象将忽略该请求,因为它没有足够的信息(例如目标对象)来收集这些值。

 

 

更多相关文章

  1. Android中 Bitmap和Drawable相互转换的方法
  2. Android 处理 Button 单击事件的三种方法
  3. [Android Studio导入第三方类库方法] Error:(19, 23) 错误: 程序
  4. Android 中数据库查询方法query()中的selectionArgs的用法
  5. android客户端向服务器端验证登陆方法的实现2
  6. Unity-Android通信:AndroidJava 使用Unity c#编写Android程序调用
  7. Android例子—设置Activity全屏的三种方法
  8. Android stuio在MainActivity中运行java的main方法

随机推荐

  1. Notification中Intent携带数据重复问题
  2. 开源项目之Android Calender(日历组件)
  3. Android(安卓)拍照,从相册获取图片TakePho
  4. Android(安卓)Studio开启虚拟机遇到HAX k
  5. Android软键盘确认键执行两次
  6. Android webview设置cookie和cookie丢失
  7. 【Android】ExpandableListView 默认展开
  8. android 获取webView高度,设置webView高度
  9. 用Android Studio创建你的第一个Hello Wo
  10. Android开发 Unity3D基础 Android Develo