Class BuiltinIconDrawable

java.lang.Object
icyllis.modernui.graphics.drawable.Drawable
icyllis.modernui.graphics.drawable.BuiltinIconDrawable

@Experimental public class BuiltinIconDrawable extends Drawable
An efficient way to draw simple scalable icons, without triggering heavy path rendering. These icons are designed to be 24x24dp with perfect pixel-grid alignment, colors may be changed via setTintList(ColorStateList), icons may be auto mirrored in RTL (right-to-left) layout direction via setAutoMirrored(boolean).
Since:
3.12
  • Field Details

  • Constructor Details

    • BuiltinIconDrawable

      public BuiltinIconDrawable(@NonNull Resources res, int iconType)
    • BuiltinIconDrawable

      public BuiltinIconDrawable(@NonNull Resources res, int iconType, float sizeInDp)
  • Method Details

    • draw

      public void draw(@NonNull Canvas canvas)
      Description copied from class: Drawable
      Draw in its bounds (set via setBounds) respecting optional effects such as alpha (set via setAlpha).
      Specified by:
      draw in class Drawable
      Parameters:
      canvas - The canvas to draw into
    • setTintList

      public void setTintList(@Nullable ColorStateList tint)
      Description copied from class: Drawable
      Specifies tint color for this drawable as a color state list.

      A Drawable's drawing content will be blended together with its tint before it is drawn to the screen.

      Note: Setting a color filter via Drawable.setColorFilter(ColorFilter) overrides tint.

      Overrides:
      setTintList in class Drawable
      Parameters:
      tint - Color state list to use for tinting this drawable, or null to clear the tint
      See Also:
    • onStateChange

      protected boolean onStateChange(@NonNull int[] stateSet)
      Description copied from class: Drawable
      Override this in your subclass to change appearance if you recognize the specified state.
      Overrides:
      onStateChange in class Drawable
      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.
    • isStateful

      public boolean isStateful()
      Description copied from class: Drawable
      Indicates whether this drawable will change its appearance based on state. Clients can use this to determine whether it is necessary to calculate their state and call setState.
      Overrides:
      isStateful in class Drawable
      Returns:
      True if this drawable changes its appearance based on state, false otherwise.
      See Also:
    • hasFocusStateSpecified

      public boolean hasFocusStateSpecified()
      Description copied from class: Drawable
      Indicates whether this drawable has at least one state spec explicitly specifying state_focused.

      Note: A View uses a Drawable instance as its background and it changes its appearance based on a state. On keyboard devices, it should specify its state_focused to make sure the user knows which view is holding the focus.

      Overrides:
      hasFocusStateSpecified in class Drawable
      Returns:
      true if state_focused is specified for this drawable.
    • setAlpha

      public void setAlpha(int alpha)
      Description copied from class: Drawable
      Specify an alpha value for the drawable. 0 means fully transparent, and 255 means fully opaque.
      Overrides:
      setAlpha in class Drawable
    • getAlpha

      public int getAlpha()
      Description copied from class: Drawable
      Gets the current alpha value for the drawable. 0 means fully transparent, 255 means fully opaque. This method is implemented by Drawable subclasses and the value returned is specific to how that class treats alpha. The default return value is 255 if the class does not override this method to return a value specific to its use of alpha.
      Overrides:
      getAlpha in class Drawable
    • setAutoMirrored

      public void setAutoMirrored(boolean mirrored)
      Description copied from class: Drawable
      Set whether this Drawable is automatically mirrored when its layout direction is RTL (right-to left). See LayoutDirection.
      Overrides:
      setAutoMirrored in class Drawable
      Parameters:
      mirrored - Set to true if the Drawable should be mirrored, false if not.
    • isAutoMirrored

      public boolean isAutoMirrored()
      Description copied from class: Drawable
      Tells if this Drawable will be automatically mirrored when its layout direction is RTL right-to-left. See LayoutDirection.
      Overrides:
      isAutoMirrored in class Drawable
      Returns:
      boolean Returns true if this Drawable will be automatically mirrored.
    • getIntrinsicWidth

      public int getIntrinsicWidth()
      Description copied from class: Drawable
      Returns the drawable's intrinsic width.

      Intrinsic width is the width at which the drawable would like to be laid out, including any inherent padding. If the drawable has no intrinsic width, such as a solid color, this method returns -1.

      Overrides:
      getIntrinsicWidth in class Drawable
      Returns:
      the intrinsic width, or -1 if no intrinsic width
    • getIntrinsicHeight

      public int getIntrinsicHeight()
      Description copied from class: Drawable
      Returns the drawable's intrinsic height.

      Intrinsic height is the height at which the drawable would like to be laid out, including any inherent padding. If the drawable has no intrinsic height, such as a solid color, this method returns -1.

      Overrides:
      getIntrinsicHeight in class Drawable
      Returns:
      the intrinsic height, or -1 if no intrinsic height