android.view.animation.GridLayoutAnimationController
A layout animation controller is used to animated a grid layout's children.
While LayoutAnimationController relies only on the index of the child
in the view group to compute the animation delay, this class uses both the
X and Y coordinates of the child within a grid.
In addition, the animation direction can be controlled. The default direction
is DIRECTION_LEFT_TO_RIGHT | DIRECTION_TOP_TO_BOTTOM
. You can
also set the animation priority to columns or rows. The default priority is
none.
Information used to compute the animation delay of each child are stored
in an instance of
GridLayoutAnimationController.AnimationParameters,
itself stored in the ViewGroup.LayoutParams of the view.
Nested Classes
Summary
XML Attributes
Constants
|
|
|
Value |
|
int |
ORDER_NORMAL |
Distributes the animation delays in the order in which view were added
to their view group. |
0 |
0x00000000 |
int |
ORDER_RANDOM |
Randomly distributes the animation delays. |
2 |
0x00000002 |
int |
ORDER_REVERSE |
Distributes the animation delays in the reverse order in which view were
added to their view group. |
1 |
0x00000001 |
Public Constructors
Public Methods
Protected Methods
getAnimation,
getAnimationForView,
getDelay,
getDelayForView,
getInterpolator,
getOrder,
getTransformedIndex,
isDone,
setAnimation,
setAnimation,
setDelay,
setInterpolator,
setInterpolator,
setOrder,
start,
willOverlap
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
Details
XML Attributes
android:columnDelay
Fraction of the animation duration used to delay the beginning of
the animation of each column.
May be a floating point value, such as "1.2
".
May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%
".
The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to
some parent container.
This may also be a reference to a resource (in the form
"@[package:]type:name
") or
theme attribute (in the form
"?[package:][type:]name
")
containing a value of this type.
This corresponds to the global attribute resource symbol columnDelay.
android:direction
Direction of the animation in the grid.
Must be one or more (separated by '|') of the following constant values.
Constant | Value | Description |
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. |
This corresponds to the global attribute resource symbol direction.
android:directionPriority
Priority of the rows and columns. When the priority is none,
both rows and columns have the same priority. When the priority is
column, the animations will be applied on the columns first. The same
goes for rows.
Must be one of the following constant values.
Constant | Value | Description |
none | 0 | Rows and columns are animated at the same time. |
column | 1 | Columns are animated first. |
row | 2 | Rows are animated first. |
This corresponds to the global attribute resource symbol directionPriority.
android:rowDelay
Fraction of the animation duration used to delay the beginning of
the animation of each row.
May be a floating point value, such as "1.2
".
May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%
".
The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to
some parent container.
This may also be a reference to a resource (in the form
"@[package:]type:name
") or
theme attribute (in the form
"?[package:][type:]name
")
containing a value of this type.
This corresponds to the global attribute resource symbol rowDelay.
Constants
public
static
final
int
DIRECTION_BOTTOM_TO_TOP
Animates the children starting from the bottom of the grid to the top.
Constant Value:
2
(0x00000002)
public
static
final
int
DIRECTION_HORIZONTAL_MASK
Bitmask used to retrieve the horizontal component of the direction.
Constant Value:
1
(0x00000001)
public
static
final
int
DIRECTION_LEFT_TO_RIGHT
Animates the children starting from the left of the grid to the right.
Constant Value:
0
(0x00000000)
public
static
final
int
DIRECTION_RIGHT_TO_LEFT
Animates the children starting from the right of the grid to the left.
Constant Value:
1
(0x00000001)
public
static
final
int
DIRECTION_TOP_TO_BOTTOM
Animates the children starting from the top of the grid to the bottom.
Constant Value:
0
(0x00000000)
public
static
final
int
DIRECTION_VERTICAL_MASK
Bitmask used to retrieve the vertical component of the direction.
Constant Value:
2
(0x00000002)
public
static
final
int
PRIORITY_COLUMN
Columns are animated first.
Constant Value:
1
(0x00000001)
public
static
final
int
PRIORITY_NONE
Rows and columns are animated at the same time.
Constant Value:
0
(0x00000000)
public
static
final
int
PRIORITY_ROW
Rows are animated first.
Constant Value:
2
(0x00000002)
Public Constructors
public
GridLayoutAnimationController(Context context, AttributeSet attrs)
Creates a new grid layout animation controller from external resources.
Parameters
context
| the Context the view group is running in, through which
it can access the resources |
attrs
| the attributes of the XML tag that is inflating the
layout animation controller
|
public
GridLayoutAnimationController(Animation animation)
Creates a new layout animation controller with a delay of 50%
for both rows and columns and the specified animation.
Parameters
animation
| the animation to use on each child of the view group
|
public
GridLayoutAnimationController(Animation animation, float columnDelay, float rowDelay)
Creates a new layout animation controller with the specified delays
and the specified animation.
Parameters
animation
| the animation to use on each child of the view group |
columnDelay
| the delay by which each column animation must be offset |
rowDelay
| the delay by which each row animation must be offset
|
Public Methods
public
float
getColumnDelay()
Returns the delay by which the children's animation are offset from one
column to the other. The delay is expressed as a fraction of the
animation duration.
Returns
- a fraction of the animation duration
public
int
getDirection()
public
int
getDirectionPriority()
public
float
getRowDelay()
Returns the delay by which the children's animation are offset from one
row to the other. The delay is expressed as a fraction of the
animation duration.
Returns
- a fraction of the animation duration
public
void
setColumnDelay(float columnDelay)
Sets the delay, as a fraction of the animation duration, by which the
children's animations are offset from one column to the other.
Parameters
columnDelay
| a fraction of the animation duration |
public
void
setDirection(int direction)
Sets the direction of the animation. The direction is expressed as an
integer containing a horizontal and vertical component. For instance,
DIRECTION_BOTTOM_TO_TOP | DIRECTION_RIGHT_TO_LEFT
.
Parameters
direction
| the direction of the animation |
public
void
setDirectionPriority(int directionPriority)
Specifies the direction priority of the animation. For instance,
PRIORITY_COLUMN will give priority to columns: the animation
will first play on the column, then on the rows.Z
Parameters
directionPriority
| the direction priority of the animation |
public
void
setRowDelay(float rowDelay)
Sets the delay, as a fraction of the animation duration, by which the
children's animations are offset from one row to the other.
Parameters
rowDelay
| a fraction of the animation duration |
public
boolean
willOverlap()
Indicates whether two children's animations will overlap. Animations
overlap when the delay is lower than 100% (or 1.0).
Returns
- true if animations will overlap, false otherwise
Protected Methods
protected
long
getDelayForView(View view)
Returns the amount of milliseconds by which the specified view's
animation must be delayed or offset. Subclasses should override this
method to return a suitable value.
This implementation returns
child animation delay
milliseconds where:
child animation delay = child index * delay
The index is retrieved from the
LayoutAnimationController.AnimationParameters
found in the view's
ViewGroup.LayoutParams.
Parameters
view
| the view for which to obtain the animation's delay |