Skip to content

Most visited

Recently visited

added in API level 1

Provides classes to manage a variety of visual elements that are intended for display only, such as bitmaps and gradients. These elements are often used by widgets as background images or simply as indicators (for example, a volume level indicator).

You can create most of these drawables using XML, as described in Drawable Resources.


Animatable Interface that drawables supporting animations should implement. 
Animatable2 Abstract class that drawables supporting animations and callbacks should extend. 
Drawable.Callback Implement this interface if you want to create an animated drawable that extends Drawable
Icon.OnDrawableLoadedListener Implement this interface to receive a callback when loadDrawableAsync is finished and your Drawable is ready. 



This class can also be created via XML inflation using <adaptive-icon> tag in addition to dynamic creation. 

AnimatedImageDrawable Drawable for drawing animated images (like GIF). 
AnimatedStateListDrawable Drawable containing a set of Drawable keyframes where the currently displayed keyframe is chosen based on the current state set. 
AnimatedVectorDrawable This class animates properties of a VectorDrawable with animations defined using ObjectAnimator or AnimatorSet
AnimationDrawable An object used to create frame-by-frame animations, defined by a series of Drawable objects, which can be used as a View object's background. 
BitmapDrawable A Drawable that wraps a bitmap and can be tiled, stretched, or aligned. 
ClipDrawable A Drawable that clips another Drawable based on this Drawable's current level value. 
ColorDrawable A specialized Drawable that fills the Canvas with a specified color. 
Drawable A Drawable is a general abstraction for "something that can be drawn." Most often you will deal with Drawable as the type of resource retrieved for drawing things to the screen; the Drawable class provides a generic API for dealing with an underlying visual resource that may take a variety of forms. 
Drawable.ConstantState This abstract class is used by Drawables to store shared constant state and data between Drawables. 
DrawableContainer A helper class that contains several Drawables and selects which one to use. 
DrawableContainer.DrawableContainerState A ConstantState that can contain several Drawables. 
DrawableWrapper Drawable container with only one child element. 
GradientDrawable A Drawable with a color gradient for buttons, backgrounds, etc. 
Icon An umbrella container for several serializable graphics representations, including Bitmaps, compressed bitmap images (e.g. 
InsetDrawable A Drawable that insets another Drawable by a specified distance or fraction of the content bounds. 
LayerDrawable A Drawable that manages an array of other Drawables. 
LevelListDrawable A resource that manages a number of alternate Drawables, each assigned a maximum numerical value. 
NinePatchDrawable A resizeable bitmap, with stretchable areas that you define. 
PaintDrawable Drawable that draws its bounds in the given paint, with optional rounded corners. 
PictureDrawable Drawable subclass that wraps a Picture, allowing the picture to be used wherever a Drawable is supported. 
RippleDrawable Drawable that shows a ripple effect in response to state changes. 

A Drawable that can rotate another Drawable based on the current level value. 

ScaleDrawable A Drawable that changes the size of another Drawable based on its current level value. 
ShapeDrawable A Drawable object that draws primitive shapes. 
ShapeDrawable.ShaderFactory Base class defines a factory object that is called each time the drawable is resized (has a new width or height). 
StateListDrawable Lets you assign a number of graphic images to a single Drawable and swap out the visible item by a string ID value. 
TransitionDrawable An extension of LayerDrawables that is intended to cross-fade between the first and second layer. 
VectorDrawable This lets you create a drawable based on an XML vector graphic. 


GradientDrawable.Orientation Controls how the gradient is oriented relative to the drawable's bounds  
This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields


Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience. (Dec 2017 Android Platform & Tools Survey)