public class DrawerArrowDrawable extends Drawable
The progress between the two states is controlled via setProgress(float)
.
Modifier and Type | Class and Description |
---|---|
static interface |
DrawerArrowDrawable.ArrowDirection |
Drawable.Callback, Drawable.ConstantState
Modifier and Type | Field and Description |
---|---|
static int |
ARROW_DIRECTION_END
Direction to make the arrow point to the end.
|
static int |
ARROW_DIRECTION_LEFT
Direction to make the arrow point towards the left.
|
static int |
ARROW_DIRECTION_RIGHT
Direction to make the arrow point towards the right.
|
static int |
ARROW_DIRECTION_START
Direction to make the arrow point towards the start.
|
Constructor and Description |
---|
DrawerArrowDrawable(Context context) |
Modifier and Type | Method and Description |
---|---|
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()
Returns the drawable's intrinsic height.
|
int |
getIntrinsicWidth()
Returns the drawable's intrinsic width.
|
int |
getOpacity()
Return the opacity/transparency of this Drawable.
|
Paint |
getPaint()
Returns the paint instance used for all drawing.
|
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. 0 means fully transparent, and
255 means fully opaque.
|
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.
|
applyTheme, canApplyTheme, clearColorFilter, clearMutated, copyBounds, copyBounds, createFromPath, createFromResourceStream, createFromResourceStream, createFromStream, createFromXml, createFromXml, createFromXmlInner, createFromXmlInner, getAlpha, getBounds, getCallback, getChangingConfigurations, getColorFilter, getConstantState, getCurrent, getDirtyBounds, getHotspotBounds, getLayoutDirection, getLevel, getMinimumHeight, getMinimumWidth, getOpticalInsets, getOutline, getPadding, getState, getTransparentRegion, inflate, inflate, invalidateSelf, isAutoMirrored, isFilterBitmap, isProjected, isStateful, isVisible, jumpToCurrentState, mutate, obtainAttributes, onBoundsChange, onLayoutDirectionChanged, onLevelChange, onStateChange, parseTintMode, resolveOpacity, scheduleSelf, setAutoMirrored, setBounds, setBounds, setCallback, setChangingConfigurations, setColorFilter, setDither, setFilterBitmap, setHotspot, setHotspotBounds, setLayoutDirection, setLevel, setState, setTint, setTintList, setTintMode, setVisible, setXfermode, unscheduleSelf
public static final int ARROW_DIRECTION_LEFT
setDirection(int)
,
getDirection()
,
Constant Field Valuespublic static final int ARROW_DIRECTION_RIGHT
setDirection(int)
,
getDirection()
,
Constant Field Valuespublic static final int ARROW_DIRECTION_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
.
setDirection(int)
,
getDirection()
,
Constant Field Valuespublic static final int ARROW_DIRECTION_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
.
setDirection(int)
,
getDirection()
,
Constant Field Valuespublic DrawerArrowDrawable(Context context)
context
- used to get the configuration for the drawable frompublic void setArrowHeadLength(float length)
length
- the length in pixelspublic float getArrowHeadLength()
public void setArrowShaftLength(float length)
length
- the length in pixelspublic float getArrowShaftLength()
public float getBarLength()
public void setBarLength(float length)
length
- the length in pixelspublic void setColor(int color)
public int getColor()
public void setBarThickness(float width)
width
- stroke width in pixelspublic float getBarThickness()
public float getGapSize()
getGapSize()
public void setGapSize(float gap)
gap
- the gap in pixelsgetGapSize()
public void setDirection(int direction)
public boolean isSpinEnabled()
setSpinEnabled(boolean)
public void setSpinEnabled(boolean enabled)
enabled
- true if the bars should rotate.isSpinEnabled()
public int getDirection()
public void setVerticalMirror(boolean verticalMirror)
public void draw(Canvas canvas)
Drawable
public void setAlpha(int alpha)
Drawable
public void setColorFilter(ColorFilter colorFilter)
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
.
setColorFilter
in class Drawable
colorFilter
- The color filter to apply, or null
to remove the
existing color filterpublic int getIntrinsicHeight()
Drawable
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.
getIntrinsicHeight
in class Drawable
public int getIntrinsicWidth()
Drawable
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.
getIntrinsicWidth
in class Drawable
public int getOpacity()
Drawable
PixelFormat
:
PixelFormat.UNKNOWN
,
PixelFormat.TRANSLUCENT
,
PixelFormat.TRANSPARENT
, or
PixelFormat.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 Drawable.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 Drawable.setAlpha(int)
or Drawable.setColorFilter(android.graphics.ColorFilter)
methods. Some subclasses,
such as BitmapDrawable
, ColorDrawable
, and GradientDrawable
,
do account for the value of Drawable.setAlpha(int)
, but the general behavior is dependent
upon the implementation of the subclass.
getOpacity
in class Drawable
PixelFormat
public float getProgress()
public void setProgress(float progress)
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 final Paint getPaint()