CircularProgressDrawable
public
class
CircularProgressDrawable
extends Drawable
implements
Animatable
java.lang.Object | ||
↳ | android.graphics.drawable.Drawable | |
↳ | androidx.swiperefreshlayout.widget.CircularProgressDrawable |
Drawable that renders the animated indeterminate progress indicator in the Material design style without depending on API level 11.
While this may be used to draw an indeterminate spinner using start()
and stop()
methods, this may also be used to draw a progress arc using setStartEndTrim(float, float)
method. CircularProgressDrawable also supports adding an arrow
at the end of the arc by setArrowEnabled(boolean)
and setArrowDimensions(float, float)
methods.
To use one of the pre-defined sizes instead of using your own, setStyle(int)
should
be called with one of the DEFAULT
or LARGE
styles as its parameter. Doing it
so will update the arrow dimensions, ring size and stroke width to fit the one specified.
If no center radius is set via setCenterRadius(float)
or setStyle(int)
methods, CircularProgressDrawable will fill the bounds set via Drawable.setBounds(Rect)
.
Summary
Constants | |
---|---|
int |
DEFAULT
Maps to ProgressBar default style. |
int |
LARGE
Maps to ProgressBar.Large style. |
Public constructors | |
---|---|
CircularProgressDrawable(Context context)
|
Public methods | |
---|---|
void
|
draw(Canvas canvas)
|
int
|
getAlpha()
|
boolean
|
getArrowEnabled()
Returns |
float
|
getArrowHeight()
Returns the arrow height in pixels. |
float
|
getArrowScale()
Returns the scale of the arrow at the end of the spinner. |
float
|
getArrowWidth()
Returns the arrow width in pixels. |
int
|
getBackgroundColor()
Returns the background color of the circle drawn inside the drawable. |
float
|
getCenterRadius()
Returns the center radius for the progress spinner in pixels. |
int[]
|
getColorSchemeColors()
Returns the colors used in the progress animation |
float
|
getEndTrim()
Returns the end trim for the progress spinner arc |
int
|
getOpacity()
|
float
|
getProgressRotation()
Returns the amount of rotation applied to the progress spinner. |
float
|
getStartTrim()
Returns the start trim for the progress spinner arc |
Paint.Cap
|
getStrokeCap()
Returns the stroke cap of the progress spinner. |
float
|
getStrokeWidth()
Returns the stroke width for the progress spinner in pixels. |
boolean
|
isRunning()
|
void
|
setAlpha(int alpha)
|
void
|
setArrowDimensions(float width, float height)
Sets the dimensions of the arrow at the end of the spinner in pixels. |
void
|
setArrowEnabled(boolean show)
Sets if the arrow at the end of the spinner should be shown. |
void
|
setArrowScale(float scale)
Sets the scale of the arrow at the end of the spinner. |
void
|
setBackgroundColor(int color)
Sets the background color of the circle inside the drawable. |
void
|
setCenterRadius(float centerRadius)
Sets the center radius for the progress spinner in pixels. |
void
|
setColorFilter(ColorFilter colorFilter)
|
void
|
setColorSchemeColors(int... colors)
Sets the colors used in the progress animation from a color list. |
void
|
setProgressRotation(float rotation)
Sets the amount of rotation to apply to the progress spinner. |
void
|
setStartEndTrim(float start, float end)
Sets the start and end trim for the progress spinner arc. |
void
|
setStrokeCap(Paint.Cap strokeCap)
Sets the stroke cap of the progress spinner. |
void
|
setStrokeWidth(float strokeWidth)
Sets the stroke width for the progress spinner in pixels. |
void
|
setStyle(int size)
Sets the overall size for the progress spinner. |
void
|
start()
Starts the animation for the spinner. |
void
|
stop()
Stops the animation for the spinner. |
Inherited methods | |
---|---|
Constants
DEFAULT
public static final int DEFAULT
Maps to ProgressBar default style.
Constant Value: 1 (0x00000001)
LARGE
public static final int LARGE
Maps to ProgressBar.Large style.
Constant Value: 0 (0x00000000)
Public constructors
CircularProgressDrawable
public CircularProgressDrawable (Context context)
Parameters | |
---|---|
context |
Context : application context
|
Public methods
getAlpha
public int getAlpha ()
Returns | |
---|---|
int |
getArrowEnabled
public boolean getArrowEnabled ()
Returns true
if the arrow at the end of the spinner is shown.
Returns | |
---|---|
boolean |
true if the arrow is shown, false otherwise.
|
getArrowHeight
public float getArrowHeight ()
Returns the arrow height in pixels.
Returns | |
---|---|
float |
arrow height in pixels |
getArrowScale
public float getArrowScale ()
Returns the scale of the arrow at the end of the spinner.
Returns | |
---|---|
float |
scale of the arrow |
getArrowWidth
public float getArrowWidth ()
Returns the arrow width in pixels.
Returns | |
---|---|
float |
arrow width in pixels |
getBackgroundColor
public int getBackgroundColor ()
Returns the background color of the circle drawn inside the drawable.
Returns | |
---|---|
int |
an ARGB color |
getCenterRadius
public float getCenterRadius ()
Returns the center radius for the progress spinner in pixels.
Returns | |
---|---|
float |
center radius in pixels |
getColorSchemeColors
public int[] getColorSchemeColors ()
Returns the colors used in the progress animation
Returns | |
---|---|
int[] |
list of ARGB colors |
getEndTrim
public float getEndTrim ()
Returns the end trim for the progress spinner arc
Returns | |
---|---|
float |
end trim from [0..1] |
getOpacity
public int getOpacity ()
Returns | |
---|---|
int |
getProgressRotation
public float getProgressRotation ()
Returns the amount of rotation applied to the progress spinner.
Returns | |
---|---|
float |
amount of rotation from [0..1] |
getStartTrim
public float getStartTrim ()
Returns the start trim for the progress spinner arc
Returns | |
---|---|
float |
start trim from [0..1] |
getStrokeCap
public Paint.Cap getStrokeCap ()
Returns the stroke cap of the progress spinner.
Returns | |
---|---|
Paint.Cap |
stroke cap |
getStrokeWidth
public float getStrokeWidth ()
Returns the stroke width for the progress spinner in pixels.
Returns | |
---|---|
float |
stroke width in pixels |
isRunning
public boolean isRunning ()
Returns | |
---|---|
boolean |
setAlpha
public void setAlpha (int alpha)
Parameters | |
---|---|
alpha |
int |
setArrowDimensions
public void setArrowDimensions (float width, float height)
Sets the dimensions of the arrow at the end of the spinner in pixels.
Parameters | |
---|---|
width |
float : width of the baseline of the arrow in pixels |
height |
float : distance from tip of the arrow to its baseline in pixels
|
setArrowEnabled
public void setArrowEnabled (boolean show)
Sets if the arrow at the end of the spinner should be shown.
Parameters | |
---|---|
show |
boolean : true if the arrow should be drawn, false otherwise
|
setArrowScale
public void setArrowScale (float scale)
Sets the scale of the arrow at the end of the spinner.
Parameters | |
---|---|
scale |
float : scaling that will be applied to the arrow's both width and height when drawing.
|
setBackgroundColor
public void setBackgroundColor (int color)
Sets the background color of the circle inside the drawable. Calling setAlpha(int)
does not affect the visibility background color, so it should be set
separately if it needs to be hidden or visible.
Parameters | |
---|---|
color |
int : an ARGB color
|
setCenterRadius
public void setCenterRadius (float centerRadius)
Sets the center radius for the progress spinner in pixels. If set to 0, this drawable will fill the bounds when drawn.
Parameters | |
---|---|
centerRadius |
float : center radius in pixels
|
setColorFilter
public void setColorFilter (ColorFilter colorFilter)
Parameters | |
---|---|
colorFilter |
ColorFilter |
setColorSchemeColors
public void setColorSchemeColors (int... colors)
Sets the colors used in the progress animation from a color list. The first color will also be the color to be used if animation is not started yet.
Parameters | |
---|---|
colors |
int : list of ARGB colors to be used in the spinner
|
setProgressRotation
public void setProgressRotation (float rotation)
Sets the amount of rotation to apply to the progress spinner.
Parameters | |
---|---|
rotation |
float : rotation from [0..1]
|
setStartEndTrim
public void setStartEndTrim (float start, float end)
Sets the start and end trim for the progress spinner arc. 0 corresponds to the geometric angle of 0 degrees (3 o'clock on a watch) and it increases clockwise, coming to a full circle at 1.
Parameters | |
---|---|
start |
float : starting position of the arc from [0..1] |
end |
float : ending position of the arc from [0..1]
|
setStrokeCap
public void setStrokeCap (Paint.Cap strokeCap)
Sets the stroke cap of the progress spinner. Default stroke cap is Paint.Cap.SQUARE
.
Parameters | |
---|---|
strokeCap |
Paint.Cap : stroke cap
|
setStrokeWidth
public void setStrokeWidth (float strokeWidth)
Sets the stroke width for the progress spinner in pixels.
Parameters | |
---|---|
strokeWidth |
float : stroke width in pixels
|
setStyle
public void setStyle (int size)
Sets the overall size for the progress spinner. This updates the radius and stroke width of the ring, and arrow dimensions.
Parameters | |
---|---|
size |
int : one of LARGE or DEFAULT
|
start
public void start ()
Starts the animation for the spinner.
stop
public void stop ()
Stops the animation for the spinner.