Android APIs
public final class

DrawableCompat

extends Object
java.lang.Object
   ↳ android.support.v4.graphics.drawable.DrawableCompat

Class Overview

Helper for accessing features in Drawable introduced after API level 4 in a backwards compatible fashion.

Summary

Public Methods
static void applyTheme(Drawable drawable, Resources.Theme t)
Applies the specified theme to this Drawable and its children.
static boolean canApplyTheme(Drawable drawable)
Whether a theme can be applied to this Drawable and its children.
static int getAlpha(Drawable drawable)
Get the alpha value of the drawable.
static ColorFilter getColorFilter(Drawable drawable)
Returns the current color filter, or null if none set.
static int getLayoutDirection(Drawable drawable)
Returns the resolved layout direction for this Drawable.
static void inflate(Drawable drawable, Resources res, XmlPullParser parser, AttributeSet attrs, Resources.Theme theme)
Inflate this Drawable from an XML resource optionally styled by a theme.
static boolean isAutoMirrored(Drawable drawable)
Tells if this Drawable will be automatically mirrored when its layout direction is RTL right-to-left.
static void jumpToCurrentState(Drawable drawable)
static void setAutoMirrored(Drawable drawable, boolean mirrored)
Set whether this Drawable is automatically mirrored when its layout direction is RTL (right-to left).
static void setHotspot(Drawable drawable, float x, float y)
Specifies the hotspot's location within the drawable.
static void setHotspotBounds(Drawable drawable, int left, int top, int right, int bottom)
Sets the bounds to which the hotspot is constrained, if they should be different from the drawable bounds.
static void setLayoutDirection(Drawable drawable, int layoutDirection)
Set the layout direction for this drawable.
static void setTint(Drawable drawable, int tint)
Specifies a tint for drawable.
static void setTintList(Drawable drawable, ColorStateList tint)
Specifies a tint for drawable as a color state list.
static void setTintMode(Drawable drawable, PorterDuff.Mode tintMode)
Specifies a tint blending mode for drawable.
static <T extends Drawable> T unwrap(Drawable drawable)
Unwrap drawable if it is the result of a call to wrap(Drawable).
static Drawable wrap(Drawable drawable)
Potentially wrap drawable so that it may be used for tinting across the different API levels, via the tinting methods in this class.
[Expand]
Inherited Methods
From class java.lang.Object

Public Methods

public static void applyTheme (Drawable drawable, Resources.Theme t)

Applies the specified theme to this Drawable and its children.

Parameters
drawable Drawable
t Resources.Theme

public static boolean canApplyTheme (Drawable drawable)

Whether a theme can be applied to this Drawable and its children.

Parameters
drawable Drawable
Returns
boolean

public static int getAlpha (Drawable drawable)

Get the alpha value of the drawable. 0 means fully transparent, 255 means fully opaque.

Parameters
drawable Drawable: The Drawable against which to invoke the method.
Returns
int

public static ColorFilter getColorFilter (Drawable drawable)

Returns the current color filter, or null if none set.

Parameters
drawable Drawable
Returns
ColorFilter the current color filter, or null if none set

public static int getLayoutDirection (Drawable drawable)

Returns the resolved layout direction for this Drawable.

Parameters
drawable Drawable
Returns
int One of LAYOUT_DIRECTION_LTR, LAYOUT_DIRECTION_RTL

public static void inflate (Drawable drawable, Resources res, XmlPullParser parser, AttributeSet attrs, Resources.Theme theme)

Inflate this Drawable from an XML resource optionally styled by a theme.

Parameters
drawable Drawable
res Resources: Resources used to resolve attribute values
parser XmlPullParser: XML parser from which to inflate this Drawable
attrs AttributeSet: Base set of attribute values
theme Resources.Theme: Theme to apply, may be null
Throws
XmlPullParserException
IOException
XmlPullParserException

public static boolean isAutoMirrored (Drawable drawable)

Tells if this Drawable will be automatically mirrored when its layout direction is RTL right-to-left. See LayoutDirection.

If running on a pre-KITKAT device this method returns false.

Parameters
drawable Drawable: The Drawable against which to invoke the method.
Returns
boolean boolean Returns true if this Drawable will be automatically mirrored.

public static void jumpToCurrentState (Drawable drawable)

Call Drawable.jumpToCurrentState().

If running on a pre-HONEYCOMB device this method does nothing.

Parameters
drawable Drawable: The Drawable against which to invoke the method.

public static void setAutoMirrored (Drawable drawable, boolean mirrored)

Set whether this Drawable is automatically mirrored when its layout direction is RTL (right-to left). See LayoutDirection.

If running on a pre-KITKAT device this method does nothing.

Parameters
drawable Drawable: The Drawable against which to invoke the method.
mirrored boolean: Set to true if the Drawable should be mirrored, false if not.

public static void setHotspot (Drawable drawable, float x, float y)

Specifies the hotspot's location within the drawable.

Parameters
drawable Drawable: The Drawable against which to invoke the method.
x float: The X coordinate of the center of the hotspot
y float: The Y coordinate of the center of the hotspot

public static void setHotspotBounds (Drawable drawable, int left, int top, int right, int bottom)

Sets the bounds to which the hotspot is constrained, if they should be different from the drawable bounds.

Parameters
drawable Drawable: The Drawable against which to invoke the method.
left int
top int
right int
bottom int

public static void setLayoutDirection (Drawable drawable, int layoutDirection)

Set the layout direction for this drawable. Should be a resolved layout direction, as the Drawable has no capacity to do the resolution on its own.

Parameters
drawable Drawable
layoutDirection int: the resolved layout direction for the drawable, either LAYOUT_DIRECTION_LTR or LAYOUT_DIRECTION_RTL

public static void setTint (Drawable drawable, int tint)

Specifies a tint for drawable.

Parameters
drawable Drawable: The Drawable against which to invoke the method.
tint int: Color to use for tinting this drawable

public static void setTintList (Drawable drawable, ColorStateList tint)

Specifies a tint for drawable as a color state list.

Parameters
drawable Drawable: The Drawable against which to invoke the method.
tint ColorStateList: Color state list to use for tinting this drawable, or null to clear the tint

public static void setTintMode (Drawable drawable, PorterDuff.Mode tintMode)

Specifies a tint blending mode for drawable.

Parameters
drawable Drawable: The Drawable against which to invoke the method.
tintMode PorterDuff.Mode: A Porter-Duff blending mode

public static T unwrap (Drawable drawable)

Unwrap drawable if it is the result of a call to wrap(Drawable). If the drawable is not the result of a call to wrap(Drawable) then drawable is returned as-is.

Parameters
drawable Drawable: The drawable to unwrap
Returns
T the unwrapped Drawable or drawable if it hasn't been wrapped.

See also:

public static Drawable wrap (Drawable drawable)

Potentially wrap drawable so that it may be used for tinting across the different API levels, via the tinting methods in this class.

If you need to get hold of the original Drawable again, you can use the value returned from unwrap(Drawable).

Parameters
drawable Drawable: The Drawable to process
Returns
Drawable A drawable capable of being tinted across all API levels.