Nested Classes
interface
Implement this interface if you want to create an animated drawable that
extends
class
This abstract class is used by
Public Constructors
Public Methods
final
Rect
Return a copy of the drawable's bounds in a new Rect.
final
void
Return a copy of the drawable's bounds in the specified Rect (allocated
by the caller).
Create a drawable from file path name.
Create a drawable from an inputstream, using the given resources and
value to determine density information.
Create a drawable from an inputstream, using the given resources and
value to determine density information.
Create a drawable from an inputstream
Create a drawable from an XML document.
abstract
void
Draw in its bounds (set via setBounds) respecting optional effects such
as alpha (set via setAlpha) and color filter (set via setColorFilter).
final
Rect
Return the drawable's bounds Rect.
Return the current
int
Return a mask of the configuration parameters for which this drawable
may change, requiring that it be re-created.
Return a
int
Return the intrinsic height of the underlying drawable object.
int
Return the intrinsic width of the underlying drawable object.
final
int
Retrieve the current level.
int
Returns the minimum height suggested by this Drawable.
int
Returns the minimum width suggested by this Drawable.
abstract
int
Return the opacity/transparency of this Drawable.
boolean
Return in padding the insets suggested by this Drawable for placing
content inside the drawable's bounds.
int[]
Describes the current state, as a union of primitve states, such as
Returns a Region representing the part of the Drawable that is completely
transparent.
void
Inflate this Drawable from an XML resource.
void
Use the current
boolean
Indicates whether this view will change its appearance based on state.
final
boolean
void
If this Drawable does transition animations between states, ask that
it immediately jump to the current state and skip any active animations.
Make this drawable mutable.
static
int
Return the appropriate opacity value for two source opacities.
void
Use the current
abstract
void
Specify an alpha value for the drawable.
void
Specify a bounding rectangle for the Drawable.
void
Specify a bounding rectangle for the Drawable.
final
void
void
Set a mask of the configuration parameters for which this drawable
may change, requiring that it be re-created.
abstract
void
Specify an optional colorFilter for the drawable.
void
Specify a color and porterduff mode to be the colorfilter for this
drawable.
void
Set to true to have the drawable dither its colors when drawn to a device
with fewer than 8-bits per color component.
void
Set to true to have the drawable filter its bitmap when scaled or rotated
(for drawables that use bitmaps).
final
boolean
Specify the level for the drawable.
boolean
Specify a set of states for the drawable.
boolean
Set whether this Drawable is visible.
void
Use the current
Protected Methods
void
Override this in your subclass to change appearance if you recognize the
specified state.
boolean
Override this in your subclass to change appearance if you vary based
on level.
boolean
Override this in your subclass to change appearance if you recognize the
specified state.
[Expand]
Inherited Methods
From class
java.lang.Object
Creates and returns a copy of this Object.
boolean
Compares this instance with the specified object and indicates if they
are equal.
void
Invoked when the garbage collector has detected that this instance is no longer reachable.
final
Class>
Returns the unique instance of
int
Returns an integer hash code for this object.
final
void
Causes a thread which is waiting on this object's monitor (by means of
calling one of the wait() methods) to be woken up.
final
void
Causes all threads which are waiting on this object's monitor (by means
of calling one of the wait() methods) to be woken up.
Returns a string containing a concise, human-readable description of this
object.
final
void
Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object.
final
void
Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object or until the
specified timeout expires.
final
void
Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object or until the
specified timeout expires.
Public Constructors
public
Drawable
()
Public Methods
public
void
clearColorFilter
()
public
final
Rect
copyBounds
()
Return a copy of the drawable's bounds in a new Rect. This returns the
same values as getBounds(), but the returned object is guaranteed to not
be changed later by the drawable (i.e. it retains no reference to this
rect). If the caller already has a Rect allocated, call copyBounds(rect).
Returns
A copy of the drawable's bounds
public
final
void
copyBounds
(Rect bounds)
Return a copy of the drawable's bounds in the specified Rect (allocated
by the caller). The bounds specify where this will draw when its draw()
method is called.
Parameters
boundsRect to receive the drawable's bounds (allocated by the
caller).
public
static
Drawable
createFromPath
(String pathName)
Create a drawable from file path name.
public
static
Drawable
createFromResourceStream
Create a drawable from an inputstream, using the given resources and
value to determine density information.
public
static
Drawable
createFromResourceStream
Create a drawable from an inputstream, using the given resources and
value to determine density information.
public
static
Drawable
createFromStream
Create a drawable from an inputstream
public
static
Drawable
createFromXml
Create a drawable from an XML document. For more information on how to
create resources in XML, see
Drawable Resources.
public
static
Drawable
createFromXmlInner
Create from inside an XML document. Called on a parser positioned at
a tag in an XML document, tries to create a Drawable from that tag.
Returns null if the tag is not a valid drawable.
public
abstract
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).
Parameters
canvasThe canvas to draw into
public
final
Rect
getBounds
()
Return the drawable's bounds Rect. Note: for efficiency, the returned
object may be the same object stored in the drawable (though this is not
guaranteed), so if a persistent copy of the bounds is needed, call
copyBounds(rect) instead.
You should also not change the object returned by this method as it may
be the same object stored in the drawable.
Returns
The bounds of the drawable (which may change later, so caller
beware). DO NOT ALTER the returned object as it may change the
stored bounds of this drawable.
getCallback
()
Return the current
Returns
A
public
int
getChangingConfigurations
()
Return a mask of the configuration parameters for which this drawable
may change, requiring that it be re-created. The default implementation
returns whatever was provided through
Returns
Returns a mask of the changing configuration parameters, as
defined by
getConstantState
()
Return a
Returns
The ConstantState associated to that Drawable.
getCurrent
()
Returns
The current drawable that will be used by this drawable. For simple drawables, this
is just the drawable itself. For drawables that change state like
public
int
getIntrinsicHeight
()
Return the intrinsic height of the underlying drawable object. Returns
-1 if it has no intrinsic height, such as with a solid color.
public
int
getIntrinsicWidth
()
Return the intrinsic width of the underlying drawable object. Returns
-1 if it has no intrinsic width, such as with a solid color.
public
final
int
getLevel
()
Retrieve the current level.
Returns
int Current level, from 0 (minimum) to 10000 (maximum).
public
int
getMinimumHeight
()
Returns the minimum height suggested by this Drawable. If a View uses this
Drawable as a background, it is suggested that the View use at least this
value for its height. (There will be some scenarios where this will not be
possible.) This value should INCLUDE any padding.
Returns
The minimum height suggested by this Drawable. If this Drawable
doesn't have a suggested minimum height, 0 is returned.
public
int
getMinimumWidth
()
Returns the minimum width suggested by this Drawable. If a View uses this
Drawable as a background, it is suggested that the View use at least this
value for its width. (There will be some scenarios where this will not be
possible.) This value should INCLUDE any padding.
Returns
The minimum width suggested by this Drawable. If this Drawable
doesn't have a suggested minimum width, 0 is returned.
public
abstract
int
getOpacity
()
Return the opacity/transparency of this Drawable. The returned value is
one of the abstract format constants in
Generally a Drawable should be as conservative as possible with the
value it returns. For example, if it contains multiple child drawables
and only shows one of them at a time, if only one of the children is
TRANSLUCENT and the others are OPAQUE then TRANSLUCENT should be
returned. You can use the method
Note that the returned value does not take into account a
custom alpha or color filter that has been applied by the client through
the
Returns
int The opacity class of the Drawable.
public
boolean
getPadding
(Rect padding)
Return in padding the insets suggested by this Drawable for placing
content inside the drawable's bounds. Positive values move toward the
center of the Drawable (set Rect.inset). Returns true if this drawable
actually has a padding, else false. When false is returned, the padding
is always set to 0.
public
int[]
getState
()
Describes the current state, as a union of primitve states, such as
Returns
An array of resource Ids describing the current state.
public
Region
getTransparentRegion
()
Returns a Region representing the part of the Drawable that is completely
transparent. This can be used to perform drawing operations, identifying
which parts of the target will not change when rendering the Drawable.
The default implementation returns null, indicating no transparent
region; subclasses can optionally override this to return an actual
Region if they want to supply this optimization information, but it is
not required that they do so.
Returns
Returns null if the Drawables has no transparent region to
report, else a Region holding the parts of the Drawable's bounds that
are transparent.
public
void
inflate
Inflate this Drawable from an XML resource.
public
void
invalidateSelf
()
Use the current
public
boolean
isStateful
()
Indicates whether this view will change its appearance based on state.
Clients can use this to determine whether it is necessary to calculate
their state and call setState.
Returns
True if this view changes its appearance based on state, false
otherwise.
public
final
boolean
isVisible
()
public
void
jumpToCurrentState
()
If this Drawable does transition animations between states, ask that
it immediately jump to the current state and skip any active animations.
mutate
()
Make this drawable mutable. This operation cannot be reversed. A mutable
drawable is guaranteed to not share its state with any other drawable.
This is especially useful when you need to modify properties of drawables
loaded from resources. By default, all drawables instances loaded from
the same resource share a common state; if you modify the state of one
instance, all the other instances will receive the same modification.
Calling this method on a mutable Drawable will have no effect.
Returns
This drawable.
public
static
int
resolveOpacity
(int op1, int op2)
Return the appropriate opacity value for two source opacities. If
either is UNKNOWN, that is returned; else, if either is TRANSLUCENT,
that is returned; else, if either is TRANSPARENT, that is returned;
else, OPAQUE is returned.
This is to help in implementing
Parameters
op1One opacity value.
op2Another opacity value.
Returns
int The combined opacity value.
public
void
scheduleSelf
(Runnable what, long when)
Use the current
Parameters
whatThe action being scheduled.
whenThe time (in milliseconds) to run.
public
abstract
void
setAlpha
(int alpha)
Specify an alpha value for the drawable. 0 means fully transparent, and
255 means fully opaque.
public
void
setBounds
(int left, int top, int right, int bottom)
Specify a bounding rectangle for the Drawable. This is where the drawable
will draw when its draw() method is called.
public
void
setBounds
(Rect bounds)
Specify a bounding rectangle for the Drawable. This is where the drawable
will draw when its draw() method is called.
public
final
void
setCallback
Bind a
Parameters
cbThe client's Callback implementation.
public
void
setChangingConfigurations
(int configs)
Set a mask of the configuration parameters for which this drawable
may change, requiring that it be re-created.
Parameters
configsA mask of the changing configuration parameters, as
defined by
public
abstract
void
setColorFilter
Specify an optional colorFilter for the drawable. Pass null to remove
any filters.
public
void
setColorFilter
(int color, PorterDuff.Mode mode)
Specify a color and porterduff mode to be the colorfilter for this
drawable.
public
void
setDither
(boolean dither)
Set to true to have the drawable dither its colors when drawn to a device
with fewer than 8-bits per color component. This can improve the look on
those devices, but can also slow down the drawing a little.
public
void
setFilterBitmap
(boolean filter)
Set to true to have the drawable filter its bitmap when scaled or rotated
(for drawables that use bitmaps). If the drawable does not use bitmaps,
this call is ignored. This can improve the look when scaled or rotated,
but also slows down the drawing.
public
final
boolean
setLevel
(int level)
Specify the level for the drawable. This allows a drawable to vary its
imagery based on a continuous controller, for example to show progress
or volume level.
If the new level you are supplying causes the appearance of the
Drawable to change, then it is responsible for calling
and
true will be returned from this function.
Parameters
levelThe new level, from 0 (minimum) to 10000 (maximum).
Returns
Returns true if this change in level has caused the appearance
of the Drawable to change (hence requiring an invalidate), otherwise
returns false.
public
boolean
setState
(int[] stateSet)
Specify a set of states for the drawable. These are use-case specific,
so see the relevant documentation. As an example, the background for
widgets like Button understand the following states:
[
If the new state you are supplying causes the appearance of the
Drawable to change, then it is responsible for calling
and
true will be returned from this function.
Note: The Drawable holds a reference on to stateSet
until a new state array is given to it, so you must not modify this
array during that time.
Parameters
stateSetThe new set of states to be displayed.
Returns
Returns true if this change in state has caused the appearance
of the Drawable to change (hence requiring an invalidate), otherwise
returns false.
public
boolean
setVisible
(boolean visible, boolean restart)
Set whether this Drawable is visible. This generally does not impact
the Drawable's behavior, but is a hint that can be used by some
Drawables, for example, to decide whether run animations.
Parameters
visibleSet to true if visible, false if not.
restartYou can supply true here to force the drawable to behave
as if it has just become visible, even if it had last
been set visible. Used for example to force animations
to restart.
Returns
boolean Returns true if the new visibility is different than
its previous state.
public
void
unscheduleSelf
Use the current
Parameters
whatThe runnable that you no longer want called.
Protected Methods
protected
void
onBoundsChange
(Rect bounds)
Override this in your subclass to change appearance if you recognize the
specified state.
protected
boolean
onLevelChange
(int level)
Override this in your subclass to change appearance if you vary based
on level.
Returns
Returns true if the level change has caused the appearance of
the Drawable to change (that is, it needs to be drawn), else false
if it looks the same and there is no need to redraw it since its
last level.
protected
boolean
onStateChange
(int[] state)
Override this in your subclass to change appearance if you recognize the
specified state.
Returns
Returns true if the state change has caused the appearance of
the Drawable to change (that is, it needs to be drawn), else false
if it looks the same and there is no need to redraw it since its
last state.
Except as noted, this content is licensed under Apache 2.0.
For details and restrictions, see the Content License.
Android 4.2 r1 —