Android APIs
public class

TransitionDrawable

extends LayerDrawable
implements Drawable.Callback
java.lang.Object
   ↳ android.graphics.drawable.Drawable
     ↳ android.graphics.drawable.LayerDrawable
       ↳ android.graphics.drawable.TransitionDrawable

Class Overview

An extension of LayerDrawables that is intended to cross-fade between the first and second layer. To start the transition, call startTransition(int). To display just the first layer, call resetTransition().

It can be defined in an XML file with the <transition> element. Each Drawable in the transition is defined in a nested <item>. For more information, see the guide to Drawable Resources.

Summary

XML Attributes
Attribute Name Related Method Description
android:bottom Bottom inset to apply to the layer. 
android:drawable Drawable used to render the layer. 
android:id Identifier of the layer. 
android:left Left inset to apply to the layer. 
android:right Right inset to apply to the layer. 
android:top Top inset to apply to the layer. 
[Expand]
Inherited XML Attributes
From class android.graphics.drawable.LayerDrawable
[Expand]
Inherited Constants
From class android.graphics.drawable.LayerDrawable
Public Constructors
TransitionDrawable(Drawable[] layers)
Create a new transition drawable with the specified list of layers.
Public Methods
void draw(Canvas canvas)
Draw in its bounds (set via setBounds) respecting optional effects such as alpha (set via setAlpha) and color filter (set via setColorFilter).
boolean isCrossFadeEnabled()
Indicates whether the cross fade is enabled for this transition.
void resetTransition()
Show only the first layer.
void reverseTransition(int duration)
Reverses the transition, picking up where the transition currently is.
void setCrossFadeEnabled(boolean enabled)
Enables or disables the cross fade of the drawables.
void startTransition(int durationMillis)
Begin the second layer on top of the first layer.
[Expand]
Inherited Methods
From class android.graphics.drawable.LayerDrawable
From class android.graphics.drawable.Drawable
From class java.lang.Object
From interface android.graphics.drawable.Drawable.Callback

XML Attributes

android:bottom

Bottom inset to apply to the layer.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

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 bottom.

Related Methods

android:drawable

Drawable used to render the layer.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

This corresponds to the global attribute resource symbol drawable.

Related Methods

android:id

Identifier of the layer. This can be used to retrieve the layer from a drawable container.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

This corresponds to the global attribute resource symbol id.

Related Methods

android:left

Left inset to apply to the layer.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

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 left.

Related Methods

android:right

Right inset to apply to the layer.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

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 right.

Related Methods

android:top

Top inset to apply to the layer.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

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 top.

Related Methods

Public Constructors

public TransitionDrawable (Drawable[] layers)

Added in API level 3

Create a new transition drawable with the specified list of layers. At least 2 layers are required for this drawable to work properly.

Parameters
layers Drawable

Public Methods

public void draw (Canvas canvas)

Added in API level 1

Draw in its bounds (set via setBounds) respecting optional effects such as alpha (set via setAlpha) and color filter (set via setColorFilter).

Parameters
canvas Canvas: The canvas to draw into

public boolean isCrossFadeEnabled ()

Added in API level 1

Indicates whether the cross fade is enabled for this transition.

Returns
boolean True if cross fading is enabled, false otherwise.

public void resetTransition ()

Added in API level 1

Show only the first layer.

public void reverseTransition (int duration)

Added in API level 1

Reverses the transition, picking up where the transition currently is. If the transition is not currently running, this will start the transition with the specified duration. If the transition is already running, the last known duration will be used.

Parameters
duration int: The duration to use if no transition is running.

public void setCrossFadeEnabled (boolean enabled)

Added in API level 1

Enables or disables the cross fade of the drawables. When cross fade is disabled, the first drawable is always drawn opaque. With cross fade enabled, the first drawable is drawn with the opposite alpha of the second drawable. Cross fade is disabled by default.

Parameters
enabled boolean: True to enable cross fading, false otherwise.

public void startTransition (int durationMillis)

Added in API level 1

Begin the second layer on top of the first layer.

Parameters
durationMillis int: The length of the transition in milliseconds