Added in API level 1

DrawableContainer

open class DrawableContainer : Drawable, Drawable.Callback
kotlin.Any
   ↳ android.graphics.drawable.Drawable
   ↳ android.graphics.drawable.DrawableContainer

A helper class that contains several Drawables and selects which one to use. You can subclass it to create your own DrawableContainers or directly use one its child classes.

Summary

Nested classes
abstract

A ConstantState that can contain several Drawables.

Public constructors

Public methods
open Unit

open Boolean

open Unit
draw(canvas: Canvas)

open Int

open Int

Return a mask of the configuration parameters for which this drawable may change, requiring that it be re-created.

open Drawable.ConstantState?

open Drawable

open Unit

open Int

open Int

open Int

open Int

open Int

open Insets

open Unit
getOutline(outline: Outline)

Called to get the drawable to populate the Outline that defines its drawing area.

open Boolean
getPadding(padding: Rect)

open Boolean

open Unit

Called when the drawable needs to be redrawn.

open Boolean

open Boolean

open Unit

open Drawable

open Boolean
onLayoutDirectionChanged(layoutDirection: Int)

Called when the drawable's resolved layout direction changes.

open Unit
scheduleDrawable(who: Drawable, what: Runnable, when: Long)

A Drawable can call this to schedule the next frame of its animation.

open Boolean

Sets the currently displayed drawable by index.

open Unit
setAlpha(alpha: Int)

open Unit

open Unit
setColorFilter(colorFilter: ColorFilter?)

open Unit
setDither(dither: Boolean)

open Unit

Change the global fade duration when a new drawable is entering the scene.

open Unit

Change the global fade duration when a new drawable is leaving the scene.

open Unit

open Unit
setHotspotBounds(left: Int, top: Int, right: Int, bottom: Int)

open Unit

Specifies a tint blending mode for this drawable.

open Unit

open Boolean
setVisible(visible: Boolean, restart: Boolean)

open Unit

A Drawable can call this to unschedule an action previously scheduled with scheduleDrawable.

Protected methods
open Unit

open Boolean

open Boolean

open Unit

Inherited functions

Public constructors

DrawableContainer

DrawableContainer()

Public methods

applyTheme

Added in API level 21
open fun applyTheme(theme: Resources.Theme): Unit
Parameters
t the theme to apply This value cannot be null.

canApplyTheme

Added in API level 21
open fun canApplyTheme(): Boolean

draw

Added in API level 1
open fun draw(canvas: Canvas): Unit
Parameters
canvas Canvas: The canvas to draw into This value cannot be null.

getAlpha

Added in API level 19
open fun getAlpha(): Int
Return
Int Value is between 0 and 255 inclusive

getConstantState

Added in API level 1
open fun getConstantState(): Drawable.ConstantState?
Return
Drawable.ConstantState? The ConstantState associated to that Drawable. This value may be null.

getCurrent

Added in API level 1
open fun getCurrent(): Drawable
Return
Drawable 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 StateListDrawable and LevelListDrawable this will be the child drawable currently in use. This value cannot be null.

getHotspotBounds

Added in API level 23
open fun getHotspotBounds(outRect: Rect): Unit
Parameters
outRect Rect: the rect to populate with the hotspot bounds This value cannot be null.

getIntrinsicHeight

Added in API level 1
open fun getIntrinsicHeight(): Int
Return
Int the intrinsic height, or -1 if no intrinsic height

getIntrinsicWidth

Added in API level 1
open fun getIntrinsicWidth(): Int
Return
Int the intrinsic width, or -1 if no intrinsic width

getMinimumHeight

Added in API level 1
open fun getMinimumHeight(): Int
Return
Int The minimum height suggested by this Drawable. If this Drawable doesn't have a suggested minimum height, 0 is returned.

getMinimumWidth

Added in API level 1
open fun getMinimumWidth(): Int
Return
Int The minimum width suggested by this Drawable. If this Drawable doesn't have a suggested minimum width, 0 is returned.

getOpacity

Added in API level 1
open fun getOpacity(): Int
Return
Int int The opacity class of the Drawable. Value is android.graphics.PixelFormat#UNKNOWN, android.graphics.PixelFormat#TRANSLUCENT, android.graphics.PixelFormat#TRANSPARENT, or android.graphics.PixelFormat#OPAQUE

getOpticalInsets

Added in API level 29
open fun getOpticalInsets(): Insets
Return
Insets This value cannot be null.

getOutline

Added in API level 21
open fun getOutline(outline: Outline): Unit

Called to get the drawable to populate the Outline that defines its drawing area.

This method is called by the default android.view.ViewOutlineProvider to define the outline of the View.

The default behavior defines the outline to be the bounding rectangle of 0 alpha. Subclasses that wish to convey a different shape or alpha value must override this method.

Parameters
outline Outline: This value cannot be null.

getPadding

Added in API level 1
open fun getPadding(padding: Rect): Boolean
Parameters
padding Rect: This value cannot be null.
Return
Boolean true if this drawable actually has a padding, else false. When false is returned, the padding is always set to 0.

hasFocusStateSpecified

Added in API level 31
open fun hasFocusStateSpecified(): Boolean
Return
Boolean true if android.R.attr#state_focused is specified for this drawable.

invalidateDrawable

Added in API level 1
open fun invalidateDrawable(who: Drawable): Unit

Called when the drawable needs to be redrawn. A view at this point should invalidate itself (or at least the part of itself where the drawable appears).

Parameters
who Drawable: This value cannot be null.

isAutoMirrored

Added in API level 19
open fun isAutoMirrored(): Boolean
Return
Boolean boolean Returns true if this Drawable will be automatically mirrored.

isStateful

Added in API level 1
open fun isStateful(): Boolean
Return
Boolean True if this drawable changes its appearance based on state, false otherwise.

jumpToCurrentState

Added in API level 11
open fun jumpToCurrentState(): Unit

mutate

Added in API level 3
open fun mutate(): Drawable
Return
Drawable This drawable. This value cannot be null.

onLayoutDirectionChanged

Added in API level 23
open fun onLayoutDirectionChanged(layoutDirection: Int): Boolean

Called when the drawable's resolved layout direction changes.

Parameters
layoutDirection Int: Value is android.view.View#LAYOUT_DIRECTION_LTR, or android.view.View#LAYOUT_DIRECTION_RTL
Return
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

scheduleDrawable

Added in API level 1
open fun scheduleDrawable(
    who: Drawable,
    what: Runnable,
    when: Long
): Unit

A Drawable can call this to schedule the next frame of its animation. An implementation can generally simply call android.os.Handler#postAtTime(Runnable, Object, long) with the parameters (what, who, when) to perform the scheduling.

Parameters
who Drawable: This value cannot be null.
what Runnable: This value cannot be null.
when Long: The time (in milliseconds) to run. The timebase is android.os.SystemClock#uptimeMillis

selectDrawable

Added in API level 1
open fun selectDrawable(index: Int): Boolean

Sets the currently displayed drawable by index.

If an invalid index is specified, the current drawable will be set to null and the index will be set to -1.

Parameters
index Int: the index of the drawable to display
Return
Boolean true if the drawable changed, false otherwise

setAlpha

Added in API level 1
open fun setAlpha(alpha: Int): Unit
Parameters
alpha Int: Value is between 0 and 255 inclusive

setAutoMirrored

Added in API level 19
open fun setAutoMirrored(mirrored: Boolean): Unit
Parameters
mirrored Boolean: Set to true if the Drawable should be mirrored, false if not.

setColorFilter

Added in API level 1
open fun setColorFilter(colorFilter: ColorFilter?): Unit
Parameters
colorFilter ColorFilter?: The color filter to apply, or null to remove the existing color filter

setDither

Added in API level 1
open fun setDither(dither: Boolean): Unit

setEnterFadeDuration

Added in API level 11
open fun setEnterFadeDuration(ms: Int): Unit

Change the global fade duration when a new drawable is entering the scene.

Parameters
ms Int: The amount of time to fade in milliseconds.

setExitFadeDuration

Added in API level 11
open fun setExitFadeDuration(ms: Int): Unit

Change the global fade duration when a new drawable is leaving the scene.

Parameters
ms Int: The amount of time to fade in milliseconds.

setHotspot

Added in API level 21
open fun setHotspot(
    x: Float,
    y: Float
): Unit
Parameters
x Float: The X coordinate of the center of the hotspot
y Float: The Y coordinate of the center of the hotspot

setHotspotBounds

Added in API level 21
open fun setHotspotBounds(
    left: Int,
    top: Int,
    right: Int,
    bottom: Int
): Unit
Parameters
left Int: position in pixels of the left bound
top Int: position in pixels of the top bound
right Int: position in pixels of the right bound
bottom Int: position in pixels of the bottom bound

setTintBlendMode

Added in API level 29
open fun setTintBlendMode(blendMode: BlendMode!): Unit

Specifies a tint blending mode for this drawable.

Defines how this drawable's tint color should be blended into the drawable before it is drawn to screen. Default tint mode is BlendMode#SRC_IN.

Note: Setting a color filter via setColorFilter(android.graphics.ColorFilter)

Parameters
blendMode BlendMode!: This value cannot be null.

setTintList

Added in API level 21
open fun setTintList(tint: ColorStateList?): Unit
Parameters
tint ColorStateList?: Color state list to use for tinting this drawable, or null to clear the tint

setVisible

Added in API level 1
open fun setVisible(
    visible: Boolean,
    restart: Boolean
): Boolean
Parameters
visible Boolean: Set to true if visible, false if not.
restart Boolean: You 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.
Return
Boolean boolean Returns true if the new visibility is different than its previous state.

unscheduleDrawable

Added in API level 1
open fun unscheduleDrawable(
    who: Drawable,
    what: Runnable
): Unit

A Drawable can call this to unschedule an action previously scheduled with scheduleDrawable. An implementation can generally simply call android.os.Handler#removeCallbacks(Runnable, Object) with the parameters (what, who) to unschedule the drawable.

Parameters
who Drawable: This value cannot be null.
what Runnable: This value cannot be null.

Protected methods

onBoundsChange

Added in API level 1
protected open fun onBoundsChange(bounds: Rect): Unit
Parameters
bounds Rect: This value cannot be null.

onLevelChange

Added in API level 1
protected open fun onLevelChange(level: Int): Boolean
Return
Boolean 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.

onStateChange

Added in API level 1
protected open fun onStateChange(state: IntArray): Boolean
Parameters
state IntArray: This value cannot be null.
Return
Boolean 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.

setConstantState

Added in API level 1
protected open fun setConstantState(state: DrawableContainer.DrawableContainerState!): Unit