belongs to Maven artifact com.android.support:support-compat:28.0.0-alpha1
DrawableCompat
public
final
class
DrawableCompat
extends Object
java.lang.Object | |
↳ | android.support.v4.graphics.drawable.DrawableCompat |
Helper for accessing features in Drawable
.
Summary
Public methods | |
---|---|
static
void
|
applyTheme(Drawable drawable, Resources.Theme theme)
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
void
|
clearColorFilter(Drawable drawable)
Removes the color filter from the given drawable. |
static
int
|
getAlpha(Drawable drawable)
Get the alpha value of the |
static
ColorFilter
|
getColorFilter(Drawable drawable)
Returns the current color filter, or |
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)
This method was deprecated
in API level 27.1.0.
Use |
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
boolean
|
setLayoutDirection(Drawable drawable, int layoutDirection)
Set the layout direction for this drawable. |
static
void
|
setTint(Drawable drawable, int tint)
Specifies a tint for |
static
void
|
setTintList(Drawable drawable, ColorStateList tint)
Specifies a tint for |
static
void
|
setTintMode(Drawable drawable, PorterDuff.Mode tintMode)
Specifies a tint blending mode for |
static
<T extends Drawable>
T
|
unwrap(Drawable drawable)
Unwrap |
static
Drawable
|
wrap(Drawable drawable)
Potentially wrap |
Inherited methods | |
---|---|
From
class
java.lang.Object
|
Public methods
applyTheme
void applyTheme (Drawable drawable, Resources.Theme theme)
Applies the specified theme to this Drawable and its children.
Parameters | |
---|---|
drawable |
Drawable |
theme |
Resources.Theme |
canApplyTheme
boolean canApplyTheme (Drawable drawable)
Whether a theme can be applied to this Drawable and its children.
Parameters | |
---|---|
drawable |
Drawable |
Returns | |
---|---|
boolean |
clearColorFilter
void clearColorFilter (Drawable drawable)
Removes the color filter from the given drawable.
Parameters | |
---|---|
drawable |
Drawable |
getAlpha
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 |
getColorFilter
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
|
getLayoutDirection
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 |
See also:
inflate
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 |
isAutoMirrored
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. |
jumpToCurrentState
void jumpToCurrentState (Drawable drawable)
This method was deprecated
in API level 27.1.0.
Use jumpToCurrentState()
directly.
Call Drawable.jumpToCurrentState()
.
Parameters | |
---|---|
drawable |
Drawable : The Drawable against which to invoke the method. |
setAutoMirrored
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.
|
setHotspot
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
|
setHotspotBounds
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 |
setLayoutDirection
boolean 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 |
Returns | |
---|---|
boolean |
true if the layout direction change has caused the
appearance of the drawable to change such that it needs to be
re-drawn, false otherwise |
See also:
setTint
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
|
setTintList
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
|
setTintMode
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
|
unwrap
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:
wrap
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 the given drawable is wrapped, we will copy over certain state over to the wrapped drawable, such as its bounds, level, visibility and state.
You must use the result of this call. If the given drawable is being used by a view (as its background for instance), you must replace the original drawable with the result of this call:
Drawable bg = DrawableCompat.wrap(view.getBackground()); // Need to set the background with the wrapped drawable view.setBackground(bg); // You can now tint the drawable DrawableCompat.setTint(bg, ...);
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. |