Most visited

Recently visited

Added in API level 1

LayoutAnimationController

public class LayoutAnimationController
extends Object

java.lang.Object
   ↳ android.view.animation.LayoutAnimationController
Known Direct Subclasses


布局动画控制器用于为布局或视图组的子项设置动画。 每个孩子使用相同的动画,但对于其中的每一个人来说,动画都是在不同的时间开始的。 ViewGroup使用布局动画控制器来计算每个孩子的动画开始必须抵消的延迟。 延迟是通过使用每个孩子的特征来计算的,例如视图组中的索引。 此标准实现通过将固定数量的毫秒乘以其父视图组中的子索引来计算延迟。 子类应该覆盖getDelayForView(android.view.View)来实现计算延迟的不同方式。 例如, GridLayoutAnimationController将根据子视图组中父子视图的列和行索引计算延迟。 用于计算每个孩子的动画延迟的信息存储在LayoutAnimationController.AnimationParameters的实例中,该实例本身存储在视图的ViewGroup.LayoutParams中。

Summary

Nested classes

class LayoutAnimationController.AnimationParameters

必须附加到布局动画控制器动画的视图组中包含的每个视图的一组参数。

XML attributes

android:animation Animation to use on each child. 
android:animationOrder The order in which the animations will be started. 
android:delay Fraction of the animation duration used to delay the beginning of the animation of each child. 
android:interpolator Interpolator used to interpolate the delay between the start of each animation. 

Constants

int ORDER_NORMAL

按照视图添加到视图组的顺序分配动画延迟。

int ORDER_RANDOM

随机分发动画延迟。

int ORDER_REVERSE

按照将视图添加到视图组的相反顺序分配动画延迟。

Fields

protected Animation mAnimation

将动画应用于设置了此布局动画控制器的视图组的每个子项。

protected Interpolator mInterpolator

内插器用于内插延迟。

protected Random mRandomizer

订单设置为随机时使用的随机数发生器。

Public constructors

LayoutAnimationController(Context context, AttributeSet attrs)

从外部资源创建一个新的布局动画控制器。

LayoutAnimationController(Animation animation)

以50%的延迟和指定的动画创建新的布局动画控制器。

LayoutAnimationController(Animation animation, float delay)

用指定的延迟和指定的动画创建一个新的布局动画控制器。

Public methods

Animation getAnimation()

返回应用于设置此控制器的视图组的每个子项的动画。

final Animation getAnimationForView(View view)

返回要应用于指定视图的动画。

float getDelay()

返回儿童动画被抵消的延迟。

Interpolator getInterpolator()

返回用于内插子节点之间延迟的插补器。

int getOrder()

返回用于计算每个孩子动画延迟的顺序。

boolean isDone()

指示布局动画是否已结束。

void setAnimation(Animation animation)

设置要在该布局动画控制器所在的视图组的每个子节点上运行的动画。

void setAnimation(Context context, int resourceID)

设置要在该布局动画控制器所在的视图组的每个子节点上运行的动画。

void setDelay(float delay)

将延迟设置为动画持续时间的一部分,通过该延迟来补偿儿童动画。

void setInterpolator(Context context, int resourceID)

设置用于内插子项之间延迟的插补器。

void setInterpolator(Interpolator interpolator)

设置用于内插子项之间延迟的插补器。

void setOrder(int order)

设置用于计算每个孩子动画延迟的顺序。

void start()

开始动画。

boolean willOverlap()

指示两个儿童的动画是否会重叠。

Protected methods

long getDelayForView(View view)

返回指定视图的动画必须延迟或偏移的毫秒数。

int getTransformedIndex(LayoutAnimationController.AnimationParameters params)

转换存储在索引 LayoutAnimationController.AnimationParameters通过返回的顺序 getOrder()

Inherited methods

From class java.lang.Object

XML attributes

android:animation

用于每个孩子的动画。

必须是另一个资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

这对应于全局属性资源符号 animation

相关方法:

android:animationOrder

动画的开始顺序。

必须是下列常数值之一。

Constant Value 描述
normal 0 Animations are started in the natural order.
reverse 1 Animations are started in the reverse order.
random 2 Animations are started randomly.

这对应于全局属性资源符号 animationOrder

相关方法:

android:delay

用于延迟每个孩子动画开始的动画持续时间的分数。

可能是浮点值,如“ 1.2 ”。

可能是一个小数值,这是一个浮点数, 14.5% %或%p,例如“ 14.5% ”。 %后缀始终表示基本大小的百分比; 可选的%p后缀提供了相对于某个父容器的大小。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 delay

android:interpolator

插值器用于内插每个动画开始之间的延迟。

必须是另一个资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

这对应于全局属性资源符号 interpolator

相关方法:

Constants

ORDER_NORMAL

Added in API level 1
int ORDER_NORMAL

按照视图添加到视图组的顺序分配动画延迟。

常量值:0(0x00000000)

ORDER_RANDOM

Added in API level 1
int ORDER_RANDOM

随机分发动画延迟。

常量值:2(0x00000002)

ORDER_REVERSE

Added in API level 1
int ORDER_REVERSE

按照将视图添加到视图组的相反顺序分配动画延迟。

常数值:1(0x00000001)

Fields

mAnimation

Added in API level 1
Animation mAnimation

将动画应用于设置了此布局动画控制器的视图组的每个子项。

mInterpolator

Added in API level 1
Interpolator mInterpolator

内插器用于内插延迟。

mRandomizer

Added in API level 1
Random mRandomizer

订单设置为随机时使用的随机数发生器。 子类应该使用这个对象来避免创建它们自己的。

Public constructors

LayoutAnimationController

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

从外部资源创建一个新的布局动画控制器。

Parameters
context Context: the Context the view group is running in, through which it can access the resources
attrs AttributeSet: the attributes of the XML tag that is inflating the layout animation controller

LayoutAnimationController

Added in API level 1
LayoutAnimationController (Animation animation)

以50%的延迟和指定的动画创建新的布局动画控制器。

Parameters
animation Animation: the animation to use on each child of the view group

LayoutAnimationController

Added in API level 1
LayoutAnimationController (Animation animation, 
                float delay)

用指定的延迟和指定的动画创建一个新的布局动画控制器。

Parameters
animation Animation: the animation to use on each child of the view group
delay float: the delay by which each child's animation must be offset

Public methods

getAnimation

Added in API level 1
Animation getAnimation ()

返回应用于设置此控制器的视图组的每个子项的动画。

Returns
Animation an Animation instance

也可以看看:

getAnimationForView

Added in API level 1
Animation getAnimationForView (View view)

返回要应用于指定视图的动画。 返回的动画会根据LayoutAnimationController.AnimationParameters提供的信息计算偏移量。 此方法由视图组调用以获取要在特定子级上设置的动画。

Parameters
view View: the view to animate
Returns
Animation an animation delayed by the number of milliseconds returned by getDelayForView(android.view.View)

也可以看看:

getDelay

Added in API level 1
float getDelay ()

返回儿童动画被抵消的延迟。 延迟表示为动画持续时间的一小部分。

Returns
float a fraction of the animation duration

也可以看看:

getInterpolator

Added in API level 1
Interpolator getInterpolator ()

返回用于内插子节点之间延迟的插补器。

Returns
Interpolator an Interpolator

getOrder

Added in API level 1
int getOrder ()

返回用于计算每个孩子动画延迟的顺序。

相关XML属性:

Returns
int one of ORDER_NORMAL, ORDER_REVERSE or {@link #ORDER_RANDOM)

isDone

Added in API level 1
boolean isDone ()

指示布局动画是否已结束。 当延迟时间最长的动画完成时,认为布局动画已完成。

Returns
boolean true if all of the children's animations are over, false otherwise

setAnimation

Added in API level 1
void setAnimation (Animation animation)

设置要在该布局动画控制器所在的视图组的每个子节点上运行的动画。

相关XML属性:

Parameters
animation Animation: the animation to run on each child of the view group

也可以看看:

setAnimation

Added in API level 1
void setAnimation (Context context, 
                int resourceID)

设置要在该布局动画控制器所在的视图组的每个子节点上运行的动画。

相关XML属性:

Parameters
context Context: the context from which the animation must be inflated
resourceID int: the resource identifier of the animation

也可以看看:

setDelay

Added in API level 1
void setDelay (float delay)

将延迟设置为动画持续时间的一部分,通过该延迟来补偿儿童动画。 一般公式是:

 child animation delay = child index * delay * animation duration
 

Parameters
delay float: a fraction of the animation duration

也可以看看:

setInterpolator

Added in API level 1
void setInterpolator (Context context, 
                int resourceID)

设置用于内插子项之间延迟的插补器。

相关XML属性:

Parameters
context Context: the context from which the interpolator must be inflated
resourceID int: the resource identifier of the interpolator

也可以看看:

setInterpolator

Added in API level 1
void setInterpolator (Interpolator interpolator)

设置用于内插子项之间延迟的插补器。

相关XML属性:

Parameters
interpolator Interpolator: the interpolator

也可以看看:

setOrder

Added in API level 1
void setOrder (int order)

设置用于计算每个孩子动画延迟的顺序。

相关XML属性:

Parameters
order int: one of ORDER_NORMAL, ORDER_REVERSE or ORDER_RANDOM

start

Added in API level 1
void start ()

开始动画。

willOverlap

Added in API level 1
boolean willOverlap ()

指示两个儿童的动画是否会重叠。 当延迟低于100%(或1.0)时,动画重叠。

Returns
boolean true if animations will overlap, false otherwise

Protected methods

getDelayForView

Added in API level 1
long getDelayForView (View view)

返回指定视图的动画必须延迟或偏移的毫秒数。 子类应该重写此方法以返回合适的值。 该实现返回child animation delay毫秒,其中:

 child animation delay = child index * delay
 
The index is retrieved from the LayoutAnimationController.AnimationParameters found in the view's ViewGroup.LayoutParams.

Parameters
view View: the view for which to obtain the animation's delay
Returns
long a delay in milliseconds

也可以看看:

getTransformedIndex

Added in API level 1
int getTransformedIndex (LayoutAnimationController.AnimationParameters params)

转换存储在索引LayoutAnimationController.AnimationParameters通过返回的顺序getOrder() 子类应该重写此方法,以便为其他类型的排序提供额外的支持。 在任何计算之前,应该由getDelayForView(android.view.View)调用此方法。

Parameters
params LayoutAnimationController.AnimationParameters: the animation parameters containing the index
Returns
int a transformed index

Hooray!