Most visited

Recently visited

Added in API level 1

AnimationSet

public class AnimationSet
extends Animation

java.lang.Object
   ↳ android.view.animation.Animation
     ↳ android.view.animation.AnimationSet


代表应该一起播放的一组动画。 每个单独的动画的转换组成一个单一的转换。 如果AnimationSet设置其子项也设置的任何属性(例如duration或fillBefore),则AnimationSet的值会覆盖子值。

AnimationSet从动画中继承行为的方式非常重要。 一些应用于AnimationSet的Animation属性会影响AnimationSet本身,其中一些会被推送到子节点,另一些则会被忽略,如下所示:

Starting with ICE_CREAM_SANDWICH, the behavior of these properties is the same in XML resources and at runtime (prior to that release, the values set in XML were ignored for AnimationSet). That is, calling setDuration(500) on an AnimationSet has the same effect as declaring android:duration="500" in an XML resource for an AnimationSet object.

Summary

Inherited XML attributes

From class android.view.animation.Animation

Inherited constants

From class android.view.animation.Animation

Public constructors

AnimationSet(Context context, AttributeSet attrs)

从资源加载AnimationSet时使用的构造函数。

AnimationSet(boolean shareInterpolator)

从代码构建AnimationSet时使用的构造函数

Public methods

void addAnimation(Animation a)

为此动画集添加一个子动画。

long computeDurationHint()

动画集的持续时间提示是其所有组件动画持续时间提示的最大值。

List<Animation> getAnimations()
long getDuration()

AnimationSet的持续时间被定义为最长的子动画的持续时间。

long getStartTime()

当这个动画应该开始。

boolean getTransformation(long currentTime, Transformation t)

动画集的转换是所有组件动画的连接。

void initialize(int width, int height, int parentWidth, int parentHeight)

使用被动画对象的维度以及对象父项来初始化此动画。

void reset()

重置此动画的初始化状态。

void restrictDuration(long durationMillis)

确保此动画运行的 持续时间不超过 durationMillis

void scaleCurrentDuration(float scale)

多少时间通过缩放。

void setDuration(long durationMillis)

设置每个儿童动画的持续时间。

void setFillAfter(boolean fillAfter)

如果fillAfter为true,则此动画执行的转换在完成时将保持不变。

void setFillBefore(boolean fillBefore)

如果fillBefore为true,则此动画将在动画的开始时间之前应用其转换。

void setRepeatMode(int repeatMode)

定义此动画在到达结尾时应该执行的操作。

void setStartOffset(long startOffset)

当这个动画应该开始相对于开始时间。

void setStartTime(long startTimeMillis)

设置此动画的开始时间和所有儿童动画

boolean willChangeBounds()

指示此动画是否会影响动画视图的边界。

boolean willChangeTransformationMatrix()

指示此动画是否会影响转换矩阵。

Protected methods

AnimationSet clone()

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

Inherited methods

From class android.view.animation.Animation
From class java.lang.Object

Public constructors

AnimationSet

Added in API level 1
AnimationSet (Context context, 
                AttributeSet attrs)

从资源加载AnimationSet时使用的构造函数。

Parameters
context Context: Application context to use
attrs AttributeSet: Attribute set from which to read values

AnimationSet

Added in API level 1
AnimationSet (boolean shareInterpolator)

从代码构建AnimationSet时使用的构造函数

Parameters
shareInterpolator boolean: Pass true if all of the animations in this set should use the interpolator associated with this AnimationSet. Pass false if each animation should use its own interpolator.

Public methods

addAnimation

Added in API level 1
void addAnimation (Animation a)

为此动画集添加一个子动画。 儿童动画的变换按照添加的顺序进行应用

Parameters
a Animation: Animation to add.

computeDurationHint

Added in API level 3
long computeDurationHint ()

动画集的持续时间提示是其所有组件动画持续时间提示的最大值。

Returns
long

也可以看看:

getAnimations

Added in API level 1
List<Animation> getAnimations ()

Returns
List<Animation> All the child animations in this AnimationSet. Note that this may include other AnimationSets, which are not expanded.

getDuration

Added in API level 1
long getDuration ()

AnimationSet的持续时间被定义为最长的子动画的持续时间。

Returns
long the duration in milliseconds of the animation

也可以看看:

getStartTime

Added in API level 1
long getStartTime ()

当这个动画应该开始。 如果动画尚未启动,则此方法可能会返回START_ON_FIRST_FRAME

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

getTransformation

Added in API level 1
boolean getTransformation (long currentTime, 
                Transformation t)

动画集的转换是所有组件动画的连接。

Parameters
currentTime long: Where we are in the animation. This is wall clock time.
t Transformation: A transformation object that is provided by the caller and will be filled in by the animation.
Returns
boolean True if the animation is still running

也可以看看:

initialize

Added in API level 1
void initialize (int width, 
                int height, 
                int parentWidth, 
                int parentHeight)

使用被动画对象的维度以及对象父项来初始化此动画。 (这是为了支持相对于这些尺寸指定的动画尺寸。)

当动画的对象的大小及其父对象已知且在调用 getTransformation(long, Transformation)之前,解释动画的对象应该调用此方法。

Parameters
width int: Width of the object being animated
height int: Height of the object being animated
parentWidth int: Width of the animated object's parent
parentHeight int: Height of the animated object's parent

也可以看看:

reset

Added in API level 1
void reset ()

重置此动画的初始化状态。

restrictDuration

Added in API level 1
void restrictDuration (long durationMillis)

确保此动画运行的持续时间不超过durationMillis 除了调整持续时间本身外,这可确保重复计数也不会使其运行时间超过给定时间。

Parameters
durationMillis long: The maximum duration the animation is allowed to run.

scaleCurrentDuration

Added in API level 1
void scaleCurrentDuration (float scale)

多少时间通过缩放。

Parameters
scale float: The amount to scale the duration.

也可以看看:

setDuration

Added in API level 1
void setDuration (long durationMillis)

设置每个儿童动画的持续时间。

Parameters
durationMillis long: the duration of the animation, in milliseconds, for every child in this set

setFillAfter

Added in API level 1
void setFillAfter (boolean fillAfter)

如果fillAfter为true,则此动画执行的转换在完成时将保持不变。 如果未设置,则默认为false。 请注意,这适用于单个动画以及使用AnimationSet来链接动画。

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

setFillBefore

Added in API level 1
void setFillBefore (boolean fillBefore)

如果fillBefore为true,则此动画将在动画的开始时间之前应用其转换。 如果setFillEnabled(boolean)未设置为true,则默认为true。 请注意,这适用于使用AnimationSet来链接动画。 在AnimationSet自身启动之前不会应用转换。

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

setRepeatMode

Added in API level 1
void setRepeatMode (int repeatMode)

定义此动画在到达结尾时应该执行的操作。 仅当重复计数大于0或INFINITE时才应用此设置。 默认为RESTART

Parameters
repeatMode int: RESTART or REVERSE

setStartOffset

Added in API level 1
void setStartOffset (long startOffset)

当这个动画应该开始相对于开始时间。 当使用AnimationSet组合复杂动画时,这是非常有用的,其中一些动画组件在不同的时间开始。

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

setStartTime

Added in API level 1
void setStartTime (long startTimeMillis)

设置此动画的开始时间和所有儿童动画

Parameters
startTimeMillis long: the start time in milliseconds

也可以看看:

willChangeBounds

Added in API level 1
boolean willChangeBounds ()

指示此动画是否会影响动画视图的边界。 例如,淡入淡出的动画不会影响界限,而200%的动画将会影响界限。

Returns
boolean true if this animation will change the view's bounds

willChangeTransformationMatrix

Added in API level 1
boolean willChangeTransformationMatrix ()

指示此动画是否会影响转换矩阵。 例如,淡入淡出的动画不会影响矩阵,而标度动画会影响矩阵。

Returns
boolean true if this animation will change the transformation matrix

Protected methods

clone

Added in API level 1
AnimationSet 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
AnimationSet a clone of this instance.
Throws
CloneNotSupportedException

Hooray!