public class GridLayoutAnimationController
extends LayoutAnimationController
java.lang.Object | ||
↳ | android.view.animation.LayoutAnimationController | |
↳ | android.view.animation.GridLayoutAnimationController |
布局动画控制器用于为网格布局的子节点生成动画。 虽然LayoutAnimationController
仅依赖视图组LayoutAnimationController
视图的索引来计算动画延迟,但此类使用网格内子对象的X和Y坐标。 另外,可以控制动画方向。 默认方向是DIRECTION_LEFT_TO_RIGHT | DIRECTION_TOP_TO_BOTTOM
。 您还可以将动画优先级设置为列或行。 默认优先级为无。 用于计算每个孩子的动画延迟的信息存储在GridLayoutAnimationController.AnimationParameters
的实例中,该实例本身存储在视图的ViewGroup.LayoutParams
中。
Nested classes |
|
---|---|
class |
GridLayoutAnimationController.AnimationParameters 必须附加到由网格布局动画控制器动画的视图组中包含的每个视图的一组参数。 |
XML attributes |
|
---|---|
android:columnDelay |
Fraction of the animation duration used to delay the beginning of the animation of each column. |
android:direction |
Direction of the animation in the grid. |
android:directionPriority |
Priority of the rows and columns. |
android:rowDelay |
Fraction of the animation duration used to delay the beginning of the animation of each row. |
Inherited XML attributes |
|
---|---|
From class android.view.animation.LayoutAnimationController
|
Constants |
|
---|---|
int |
DIRECTION_BOTTOM_TO_TOP 动画从网格底部开始到顶部。 |
int |
DIRECTION_HORIZONTAL_MASK 位掩码用于检索方向的水平分量。 |
int |
DIRECTION_LEFT_TO_RIGHT 从网格左侧向右侧开始动画。 |
int |
DIRECTION_RIGHT_TO_LEFT 将从网格右侧开始的孩子动画到左侧。 |
int |
DIRECTION_TOP_TO_BOTTOM 动画从网格顶部开始到底部的儿童。 |
int |
DIRECTION_VERTICAL_MASK 位掩码用于检索方向的垂直分量。 |
int |
PRIORITY_COLUMN 列首先被动画。 |
int |
PRIORITY_NONE 行和列同时动画。 |
int |
PRIORITY_ROW 行首先是动画。 |
Inherited constants |
---|
From class android.view.animation.LayoutAnimationController
|
Inherited fields |
---|
From class android.view.animation.LayoutAnimationController
|
Public constructors |
|
---|---|
GridLayoutAnimationController(Context context, AttributeSet attrs) 从外部资源创建新的网格布局动画控制器。 |
|
GridLayoutAnimationController(Animation animation) 为行和列以及指定的动画创建一个新的布局动画控制器,延迟50%。 |
|
GridLayoutAnimationController(Animation animation, float columnDelay, float rowDelay) 用指定的延迟和指定的动画创建一个新的布局动画控制器。 |
Public methods |
|
---|---|
float |
getColumnDelay() 返回儿童动画从一列到另一列的延迟。 |
int |
getDirection() 返回动画的方向。 |
int |
getDirectionPriority() 返回动画的方向优先级。 |
float |
getRowDelay() 返回儿童动画从一行到另一行的延迟。 |
void |
setColumnDelay(float columnDelay) 将延迟设置为动画持续时间的一部分,通过该延迟儿童动画从一列到另一列进行偏移。 |
void |
setDirection(int direction) 设置动画的方向。 |
void |
setDirectionPriority(int directionPriority) 指定动画的方向优先级。 |
void |
setRowDelay(float rowDelay) 将延迟设置为动画持续时间的一部分,通过该延迟儿童的动画从一行到另一行进行偏移。 |
boolean |
willOverlap() 指示两个儿童的动画是否会重叠。 |
Protected methods |
|
---|---|
long |
getDelayForView(View view) 返回指定视图的动画必须延迟或偏移的毫秒数。 |
Inherited methods |
|
---|---|
From class android.view.animation.LayoutAnimationController
|
|
From class java.lang.Object
|
用于延迟每列的动画开始的动画持续时间的分数。
可能是浮点值,如“ 1.2
”。
可能是一个小数值,这是一个浮点数, 14.5%
%或%p,例如“ 14.5%
”。 %后缀始终表示基本大小的百分比; 可选的%p后缀提供了相对于某个父容器的大小。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 columnDelay
。
网格中动画的方向。
必须是以下常量值中的一个或多个(用'|'分隔)。
Constant | Value | 描述 |
---|---|---|
left_to_right |
0x0 | Animates columns from left to right. |
right_to_left |
0x1 | Animates columns from right to left. |
top_to_bottom |
0x0 | Animates rows from top to bottom. |
bottom_to_top |
0x2 | Animates rows from bottom to top. |
这对应于全局属性资源符号 direction
。
行和列的优先级。 当优先级为无时,行和列都具有相同的优先级。 当优先级为列时,动画将首先应用于列。 行也是如此。
必须是下列常数值之一。
Constant | Value | 描述 |
---|---|---|
none |
0 | Rows and columns are animated at the same time. |
column |
1 | Columns are animated first. |
row |
2 | Rows are animated first. |
这对应于全局属性资源符号 directionPriority
。
用于延迟每行动画开始的动画持续时间的分数。
可能是浮点值,例如“ 1.2
”。
可能是小数值,这是一个浮点数,后面跟着%或%p,例如“ 14.5%
”。 %后缀始终表示基本大小的百分比; 可选的%p后缀提供了相对于某个父容器的大小。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 rowDelay
。
int DIRECTION_BOTTOM_TO_TOP
动画从网格底部开始到顶部。
常量值:2(0x00000002)
int DIRECTION_HORIZONTAL_MASK
位掩码用于检索方向的水平分量。
常数值:1(0x00000001)
int DIRECTION_LEFT_TO_RIGHT
从网格左侧向右侧开始动画。
常量值:0(0x00000000)
int DIRECTION_RIGHT_TO_LEFT
将从网格右侧开始的孩子动画到左侧。
常数值:1(0x00000001)
int DIRECTION_TOP_TO_BOTTOM
动画从网格顶部开始到底部的儿童。
常量值:0(0x00000000)
int DIRECTION_VERTICAL_MASK
位掩码用于检索方向的垂直分量。
常量值:2(0x00000002)
GridLayoutAnimationController (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 |
GridLayoutAnimationController (Animation animation)
为行和列以及指定的动画创建一个新的布局动画控制器,延迟50%。
Parameters | |
---|---|
animation |
Animation : the animation to use on each child of the view group |
GridLayoutAnimationController (Animation animation, float columnDelay, float rowDelay)
用指定的延迟和指定的动画创建一个新的布局动画控制器。
Parameters | |
---|---|
animation |
Animation : the animation to use on each child of the view group |
columnDelay |
float : the delay by which each column animation must be offset |
rowDelay |
float : the delay by which each row animation must be offset |
float getColumnDelay ()
返回儿童动画从一列到另一列的延迟。 延迟表示为动画持续时间的一小部分。
Returns | |
---|---|
float |
a fraction of the animation duration |
int getDirection ()
返回动画的方向。 DIRECTION_HORIZONTAL_MASK
和DIRECTION_VERTICAL_MASK
可用于检索方向的水平和垂直分量。
Returns | |
---|---|
int |
the direction of the animation |
int getDirectionPriority ()
返回动画的方向优先级。 优先级可以是PRIORITY_NONE
, PRIORITY_COLUMN
或者PRIORITY_ROW
。
Returns | |
---|---|
int |
the priority of the animation direction |
float getRowDelay ()
返回儿童动画从一行到另一行的延迟。 延迟表示为动画持续时间的一小部分。
Returns | |
---|---|
float |
a fraction of the animation duration |
void setColumnDelay (float columnDelay)
将延迟设置为动画持续时间的一部分,通过该延迟儿童动画从一列到另一列进行偏移。
Parameters | |
---|---|
columnDelay |
float : a fraction of the animation duration |
void setDirection (int direction)
设置动画的方向。 方向表示为包含水平分量和垂直分量的整数。 例如, DIRECTION_BOTTOM_TO_TOP | DIRECTION_RIGHT_TO_LEFT
。
Parameters | |
---|---|
direction |
int : the direction of the animation |
void setDirectionPriority (int directionPriority)
指定动画的方向优先级。 例如, PRIORITY_COLUMN
将优先考虑列:动画将首先在列上播放,然后在行上播放.Z
Parameters | |
---|---|
directionPriority |
int : the direction priority of the animation |
void setRowDelay (float rowDelay)
将延迟设置为动画持续时间的一部分,通过该延迟儿童的动画从一行到另一行进行偏移。
Parameters | |
---|---|
rowDelay |
float : a fraction of the animation duration |
boolean willOverlap ()
指示两个儿童的动画是否会重叠。 当延迟低于100%(或1.0)时,动画重叠。
Returns | |
---|---|
boolean |
true if animations will overlap, false otherwise |
long getDelayForView (View view)
返回指定视图的动画必须延迟或偏移的毫秒数。 子类应该重写此方法以返回合适的值。 该实现返回child animation delay
毫秒,其中:
child animation delay = child index * delayThe 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 |