Android APIs
public class

DrawerArrowDrawable

extends Drawable
java.lang.Object
   ↳ android.graphics.drawable.Drawable
     ↳ android.support.v7.graphics.drawable.DrawerArrowDrawable

Class Overview

A drawable that can draw a "Drawer hamburger" menu or an arrow and animate between them.

The progress between the two states is controlled via setProgress(float).

Summary

Constants
int ARROW_DIRECTION_END Direction to make the arrow point to the end.
int ARROW_DIRECTION_LEFT Direction to make the arrow point towards the left.
int ARROW_DIRECTION_RIGHT Direction to make the arrow point towards the right.
int ARROW_DIRECTION_START Direction to make the arrow point towards the start.
Public Constructors
DrawerArrowDrawable(Context context)
Public Methods
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).
float getArrowHeadLength()
Returns the length of the arrow head (from tip to edge, perpendicular to the shaft), in pixels.
float getArrowShaftLength()
Returns the arrow shaft length in pixels.
float getBarLength()
The length of the bars when they are parallel to each other.
float getBarThickness()
Returns the thickness (stroke width) of the bars.
int getColor()
Returns the color of the drawable.
int getDirection()
Returns the arrow direction.
float getGapSize()
Returns the max gap between the bars when they are parallel to each other.
int getIntrinsicHeight()
Return the intrinsic height of the underlying drawable object.
int getIntrinsicWidth()
Return the intrinsic width of the underlying drawable object.
int getOpacity()
Return the opacity/transparency of this Drawable.
float getProgress()
Returns the current progress of the arrow.
boolean isSpinEnabled()
Returns whether the bars should rotate or not during the transition.
void setAlpha(int alpha)
Specify an alpha value for the drawable.
void setArrowHeadLength(float length)
Sets the length of the arrow head (from tip to edge, perpendicular to the shaft).
void setArrowShaftLength(float length)
Sets the arrow shaft length.
void setBarLength(float length)
Sets the length of the bars when they are parallel to each other.
void setBarThickness(float width)
Sets the thickness (stroke size) for the bars.
void setColor(int color)
Sets the color of the drawable.
void setColorFilter(ColorFilter colorFilter)
Specify an optional color filter for the drawable.
void setDirection(int direction)
Set the arrow direction.
void setGapSize(float gap)
Sets the max gap between the bars when they are parallel to each other.
void setProgress(float progress)
Set the progress of the arrow.
void setSpinEnabled(boolean enabled)
Returns whether the bars should rotate or not during the transition.
void setVerticalMirror(boolean verticalMirror)
If set, canvas is flipped when progress reached to end and going back to start.
[Expand]
Inherited Methods
From class android.graphics.drawable.Drawable
From class java.lang.Object

Constants

public static final int ARROW_DIRECTION_END

Direction to make the arrow point to the end.

When used in a view with a RTL layout direction, this is the same as ARROW_DIRECTION_LEFT, otherwise it is the same as ARROW_DIRECTION_RIGHT.

Constant Value: 3 (0x00000003)

public static final int ARROW_DIRECTION_LEFT

Direction to make the arrow point towards the left.

Constant Value: 0 (0x00000000)

public static final int ARROW_DIRECTION_RIGHT

Direction to make the arrow point towards the right.

Constant Value: 1 (0x00000001)

public static final int ARROW_DIRECTION_START

Direction to make the arrow point towards the start.

When used in a view with a RTL layout direction, this is the same as ARROW_DIRECTION_RIGHT, otherwise it is the same as ARROW_DIRECTION_LEFT.

Constant Value: 2 (0x00000002)

Public Constructors

public DrawerArrowDrawable (Context context)

Parameters
context used to get the configuration for the drawable from

Public Methods

public 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
canvas The canvas to draw into

public float getArrowHeadLength ()

Returns the length of the arrow head (from tip to edge, perpendicular to the shaft), in pixels.

public float getArrowShaftLength ()

Returns the arrow shaft length in pixels.

public float getBarLength ()

The length of the bars when they are parallel to each other.

public float getBarThickness ()

Returns the thickness (stroke width) of the bars.

public int getColor ()

Returns the color of the drawable.

public int getDirection ()

Returns the arrow direction.

public float getGapSize ()

Returns the max gap between the bars when they are parallel to each other.

See Also

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 int getOpacity ()

Return the opacity/transparency of this Drawable. The returned value is one of the abstract format constants in PixelFormat: UNKNOWN, TRANSLUCENT, TRANSPARENT, or OPAQUE.

An OPAQUE drawable is one that draws all all content within its bounds, completely covering anything behind the drawable. A TRANSPARENT drawable is one that draws nothing within its bounds, allowing everything behind it to show through. A TRANSLUCENT drawable is a drawable in any other state, where the drawable will draw some, but not all, of the content within its bounds and at least some content behind the drawable will be visible. If the visibility of the drawable's contents cannot be determined, the safest/best return value is TRANSLUCENT.

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 resolveOpacity(int, int) to perform a standard reduction of two opacities to the appropriate single output.

Note that the returned value does not necessarily take into account a custom alpha or color filter that has been applied by the client through the setAlpha(int) or setColorFilter(ColorFilter) methods. Some subclasses, such as BitmapDrawable, ColorDrawable, and GradientDrawable, do account for the value of setAlpha(int), but the general behavior is dependent upon the implementation of the subclass.

Returns
  • int The opacity class of the Drawable.

public float getProgress ()

Returns the current progress of the arrow.

public boolean isSpinEnabled ()

Returns whether the bars should rotate or not during the transition.

public void setAlpha (int alpha)

Specify an alpha value for the drawable. 0 means fully transparent, and 255 means fully opaque.

public void setArrowHeadLength (float length)

Sets the length of the arrow head (from tip to edge, perpendicular to the shaft).

Parameters
length the length in pixels

public void setArrowShaftLength (float length)

Sets the arrow shaft length.

Parameters
length the length in pixels

public void setBarLength (float length)

Sets the length of the bars when they are parallel to each other.

Parameters
length the length in pixels

public void setBarThickness (float width)

Sets the thickness (stroke size) for the bars.

Parameters
width stroke width in pixels

public void setColor (int color)

Sets the color of the drawable.

public void setColorFilter (ColorFilter colorFilter)

Specify an optional color filter for the drawable.

If a Drawable has a ColorFilter, each output pixel of the Drawable's drawing contents will be modified by the color filter before it is blended onto the render target of a Canvas.

Pass null to remove any existing color filter.

Note: Setting a non-null color filter disables tint.

Parameters
colorFilter The color filter to apply, or null to remove the existing color filter

public void setDirection (int direction)

Set the arrow direction.

public void setGapSize (float gap)

Sets the max gap between the bars when they are parallel to each other.

Parameters
gap the gap in pixels
See Also

public void setProgress (float progress)

Set the progress of the arrow.

A value of 0.0 indicates that the arrow should be drawn in it's starting position. A value of 1.0 indicates that the arrow should be drawn in it's ending position.

public void setSpinEnabled (boolean enabled)

Returns whether the bars should rotate or not during the transition.

Parameters
enabled true if the bars should rotate.
See Also

public void setVerticalMirror (boolean verticalMirror)

If set, canvas is flipped when progress reached to end and going back to start.