GridLayoutAnimationController


public class GridLayoutAnimationController
extends LayoutAnimationController

java.lang.Object
   ↳ android.view.animation.LayoutAnimationController
     ↳ 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.

Summary

Nested classes

class GridLayoutAnimationController.AnimationParameters

The set of parameters that has to be attached to each view contained in the view group animated by the grid layout animation controller. 

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

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 DIRECTION_BOTTOM_TO_TOP

Animates the children starting from the bottom of the grid to the top.

int DIRECTION_HORIZONTAL_MASK

Bitmask used to retrieve the horizontal component of the direction.

int DIRECTION_LEFT_TO_RIGHT

Animates the children starting from the left of the grid to the right.

int DIRECTION_RIGHT_TO_LEFT

Animates the children starting from the right of the grid to the left.

int DIRECTION_TOP_TO_BOTTOM

Animates the children starting from the top of the grid to the bottom.

int DIRECTION_VERTICAL_MASK

Bitmask used to retrieve the vertical component of the direction.

int PRIORITY_COLUMN

Columns are animated first.

int PRIORITY_NONE

Rows and columns are animated at the same time.

int PRIORITY_ROW

Rows are animated first.

Inherited constants

int ORDER_NORMAL

Distributes the animation delays in the order in which view were added to their view group.

int ORDER_RANDOM

Randomly distributes the animation delays.

int ORDER_REVERSE

Distributes the animation delays in the reverse order in which view were added to their view group.

Inherited fields

protected Animation mAnimation

The animation applied on each child of the view group on which this layout animation controller is set.

protected Interpolator mInterpolator

The interpolator used to interpolate the delays.

protected Random mRandomizer

The randomizer used when the order is set to random.

Public constructors

GridLayoutAnimationController(Context context, AttributeSet attrs)

Creates a new grid layout animation controller from external resources.

GridLayoutAnimationController(Animation animation)

Creates a new layout animation controller with a delay of 50% for both rows and columns and the specified animation.

GridLayoutAnimationController(Animation animation, float columnDelay, float rowDelay)

Creates a new layout animation controller with the specified delays and the specified animation.

Public methods

float getColumnDelay()

Returns the delay by which the children's animation are offset from one column to the other.

int getDirection()

Returns the direction of the animation.

int getDirectionPriority()

Returns the direction priority for the animation.

float getRowDelay()

Returns the delay by which the children's animation are offset from one row to the other.

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.

void setDirection(int direction)

Sets the direction of the animation.

void setDirectionPriority(int directionPriority)

Specifies the direction priority of the animation.

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.

boolean willOverlap()

Indicates whether two children's animations will overlap.

Protected methods

long getDelayForView(View view)

Returns the amount of milliseconds by which the specified view's animation must be delayed or offset.

Inherited methods

Animation getAnimation()

Returns the animation applied to each child of the view group on which this controller is set.

final Animation getAnimationForView(View view)

Returns the animation to be applied to the specified view.

float getDelay()

Returns the delay by which the children's animation are offset.

long getDelayForView(View view)

Returns the amount of milliseconds by which the specified view's animation must be delayed or offset.

Interpolator getInterpolator()

Returns the interpolator used to interpolate the delays between the children.

int getOrder()

Returns the order used to compute the delay of each child's animation.

int getTransformedIndex(LayoutAnimationController.AnimationParameters params)

Transforms the index stored in LayoutAnimationController.AnimationParameters by the order returned by getOrder().

boolean isDone()

Indicates whether the layout animation is over or not.

void setAnimation(Animation animation)

Sets the animation to be run on each child of the view group on which this layout animation controller is .

void setAnimation(Context context, int resourceID)

Sets the animation to be run on each child of the view group on which this layout animation controller is .

void setDelay(float delay)

Sets the delay, as a fraction of the animation duration, by which the children's animations are offset.

void setInterpolator(Context context, int resourceID)

Sets the interpolator used to interpolate the delays between the children.

void setInterpolator(Interpolator interpolator)

Sets the interpolator used to interpolate the delays between the children.

void setOrder(int order)

Sets the order used to compute the delay of each child's animation.

void start()

Starts the animation.

boolean willOverlap()

Indicates whether two children's animations will overlap.

Object clone()

Creates and returns a copy of this object.

boolean equals(Object obj)

Indicates whether some other object is "equal to" this one.

void finalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

final Class<?> getClass()

Returns the runtime class of this Object.

int hashCode()

Returns a hash code value for the object.

final void notify()

Wakes up a single thread that is waiting on this object's monitor.

final void notifyAll()

Wakes up all threads that are waiting on this object's monitor.

String toString()

Returns a string representation of the object.

final void wait(long timeoutMillis, int nanos)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait(long timeoutMillis)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait()

Causes the current thread to wait until it is awakened, typically by being notified or interrupted.

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.

android:direction

Direction of the animation in the grid.

Must be one or more (separated by '|') of the following constant values.

ConstantValueDescription
bottom_to_top2Animates rows from bottom to top.
left_to_right0Animates columns from left to right.
right_to_left1Animates columns from right to left.
top_to_bottom0Animates rows from top to bottom.

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.

ConstantValueDescription
column1Columns are animated first.
none0Rows and columns are animated at the same time.
row2Rows are animated first.

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.

Constants

DIRECTION_BOTTOM_TO_TOP

Added in API level 1
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)

DIRECTION_HORIZONTAL_MASK

Added in API level 1
public static final int DIRECTION_HORIZONTAL_MASK

Bitmask used to retrieve the horizontal component of the direction.

Constant Value: 1 (0x00000001)

DIRECTION_LEFT_TO_RIGHT

Added in API level 1
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)

DIRECTION_RIGHT_TO_LEFT

Added in API level 1
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)

DIRECTION_TOP_TO_BOTTOM

Added in API level 1
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)

DIRECTION_VERTICAL_MASK

Added in API level 1
public static final int DIRECTION_VERTICAL_MASK

Bitmask used to retrieve the vertical component of the direction.

Constant Value: 2 (0x00000002)

PRIORITY_COLUMN

Added in API level 1
public static final int PRIORITY_COLUMN

Columns are animated first.

Constant Value: 1 (0x00000001)

PRIORITY_NONE

Added in API level 1
public static final int PRIORITY_NONE

Rows and columns are animated at the same time.

Constant Value: 0 (0x00000000)

PRIORITY_ROW

Added in API level 1
public static final int PRIORITY_ROW

Rows are animated first.

Constant Value: 2 (0x00000002)

Public constructors

GridLayoutAnimationController

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

Creates a new grid layout animation controller from external resources.

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

Added in API level 1
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 Animation: the animation to use on each child of the view group

GridLayoutAnimationController

Added in API level 1
public GridLayoutAnimationController (Animation animation, 
                float columnDelay, 
                float rowDelay)

Creates a new layout animation controller with the specified delays and the specified animation.

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

Public methods

getColumnDelay

Added in API level 1
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
float a fraction of the animation duration

getDirection

Added in API level 1
public int getDirection ()

Returns the direction of the animation. DIRECTION_HORIZONTAL_MASK and DIRECTION_VERTICAL_MASK can be used to retrieve the horizontal and vertical components of the direction.

Returns
int the direction of the animation

getDirectionPriority

Added in API level 1
public int getDirectionPriority ()

Returns the direction priority for the animation. The priority can be either PRIORITY_NONE, PRIORITY_COLUMN or PRIORITY_ROW.

Returns
int the priority of the animation direction

getRowDelay

Added in API level 1
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
float a fraction of the animation duration

setColumnDelay

Added in API level 1
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 float: a fraction of the animation duration

setDirection

Added in API level 1
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 int: the direction of the animation

setDirectionPriority

Added in API level 1
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 int: the direction priority of the animation

setRowDelay

Added in API level 1
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 float: a fraction of the animation duration

willOverlap

Added in API level 1
public boolean willOverlap ()

Indicates whether two children's animations will overlap. Animations overlap when the delay is lower than 100% (or 1.0).

Returns
boolean true if animations will overlap, false otherwise

Protected methods

getDelayForView

Added in API level 1
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 View: the view for which to obtain the animation's delay

Returns
long a delay in milliseconds