AnimatedVectorDrawableCompat
This package is part of the
Android support library which
is no longer maintained.
The support library has been superseded by AndroidX
which is part of Jetpack .
We recommend using the AndroidX libraries in all new projects. You should also consider
migrating existing projects to AndroidX.
To find the AndroidX class that maps to this deprecated class, see the AndroidX
support library class
mappings .
public
class
AnimatedVectorDrawableCompat
extends Drawable
implements
Animatable2Compat
For API 24 and above, this class is delegating to the framework's AnimatedVectorDrawable
.
For older API version, this class uses ObjectAnimator
and
AnimatorSet
to animate the properties of a
VectorDrawableCompat
to create an animated drawable.
AnimatedVectorDrawableCompat are defined in the same XML format as
AnimatedVectorDrawable
.
Here are all the animatable attributes in
VectorDrawableCompat
:
Element Name
Animatable attribute name
<vector>
alpha
<group>
rotation
pivotX
pivotY
scaleX
scaleY
translateX
translateY
<path>
fillColor
pathData
strokeColor
strokeWidth
strokeAlpha
fillAlpha
trimPathStart
trimPathEnd
trimPathOffset
You can always create a AnimatedVectorDrawableCompat object and use it as a Drawable by the Java
API. In order to refer to AnimatedVectorDrawableCompat inside a XML file, you can use
app:srcCompat attribute in AppCompat library's ImageButton or ImageView.
Note that the animation in AnimatedVectorDrawableCompat now can support the following features:
Path Morphing (PathType evaluator). This is used for morphing one path into another.
Path Interpolation. This is used to defined a flexible interpolator (represented as a path)
instead of the system defined ones like LinearInterpolator.
Animating 2 values in one ObjectAnimator according to one path's X value and Y value. One
usage is moving one object in both X and Y dimensions along an path.
Summary
Public methods
void
applyTheme (Resources.Theme t)
boolean
canApplyTheme ()
void
clearAnimationCallbacks ()
Removes all existing animation callbacks.
static
void
clearAnimationCallbacks (Drawable dr)
Utility function to clear animation callbacks from Drawable, when the drawable is
created from XML and referred in Java code, e.g: ImageView.getDrawable().
void
clearColorFilter ()
static
AnimatedVectorDrawableCompat
create (Context context, int resId)
Create a AnimatedVectorDrawableCompat object.
static
AnimatedVectorDrawableCompat
createFromXmlInner (Context context, Resources r, XmlPullParser parser, AttributeSet attrs, Resources.Theme theme)
Create a AnimatedVectorDrawableCompat from inside an XML document using an optional
Resources.Theme
.
void
draw (Canvas canvas)
int
getAlpha ()
int
getChangingConfigurations ()
ColorFilter
getColorFilter ()
Drawable.ConstantState
getConstantState ()
Note that we don't support constant state when SDK < 24.
Drawable
getCurrent ()
int
getIntrinsicHeight ()
int
getIntrinsicWidth ()
int
getMinimumHeight ()
int
getMinimumWidth ()
int
getOpacity ()
boolean
getPadding (Rect padding)
int[]
getState ()
Region
getTransparentRegion ()
void
inflate (Resources res, XmlPullParser parser, AttributeSet attrs, Resources.Theme theme)
void
inflate (Resources res, XmlPullParser parser, AttributeSet attrs)
boolean
isAutoMirrored ()
boolean
isRunning ()
boolean
isStateful ()
void
jumpToCurrentState ()
Drawable
mutate ()
mutate() will be effective only if the getConstantState() is returning non-null.
static
void
registerAnimationCallback (Drawable dr, Animatable2Compat.AnimationCallback callback)
Utility function to register callback to Drawable, when the drawable is created from XML and
referred in Java code, e.g: ImageView.getDrawable().
void
registerAnimationCallback (Animatable2Compat.AnimationCallback callback)
Adds a callback to listen to the animation events.
void
setAlpha (int alpha)
void
setAutoMirrored (boolean mirrored)
void
setChangingConfigurations (int configs)
void
setColorFilter (int color, PorterDuff.Mode mode)
void
setColorFilter (ColorFilter colorFilter)
void
setFilterBitmap (boolean filter)
void
setHotspot (float x, float y)
void
setHotspotBounds (int left, int top, int right, int bottom)
boolean
setState (int[] stateSet)
void
setTint (int tint)
void
setTintList (ColorStateList tint)
void
setTintMode (PorterDuff.Mode tintMode)
boolean
setVisible (boolean visible, boolean restart)
void
start ()
void
stop ()
boolean
unregisterAnimationCallback (Animatable2Compat.AnimationCallback callback)
Removes the specified animation callback.
static
boolean
unregisterAnimationCallback (Drawable dr, Animatable2Compat.AnimationCallback callback)
Utility function to unregister animation callback from Drawable, when the drawable is
created from XML and referred in Java code, e.g: ImageView.getDrawable().
Inherited methods
From
class
android.graphics.drawable.Drawable
void
applyTheme(Resources.Theme arg0)
boolean
canApplyTheme()
void
clearColorFilter()
final
Rect
copyBounds()
final
void
copyBounds(Rect arg0)
static
Drawable
createFromPath(String arg0)
static
Drawable
createFromResourceStream(Resources arg0, TypedValue arg1, InputStream arg2, String arg3, BitmapFactory.Options arg4)
static
Drawable
createFromResourceStream(Resources arg0, TypedValue arg1, InputStream arg2, String arg3)
static
Drawable
createFromStream(InputStream arg0, String arg1)
static
Drawable
createFromXml(Resources arg0, XmlPullParser arg1)
static
Drawable
createFromXml(Resources arg0, XmlPullParser arg1, Resources.Theme arg2)
static
Drawable
createFromXmlInner(Resources arg0, XmlPullParser arg1, AttributeSet arg2, Resources.Theme arg3)
static
Drawable
createFromXmlInner(Resources arg0, XmlPullParser arg1, AttributeSet arg2)
abstract
void
draw(Canvas arg0)
int
getAlpha()
final
Rect
getBounds()
Drawable.Callback
getCallback()
int
getChangingConfigurations()
ColorFilter
getColorFilter()
Drawable.ConstantState
getConstantState()
Drawable
getCurrent()
Rect
getDirtyBounds()
void
getHotspotBounds(Rect arg0)
int
getIntrinsicHeight()
int
getIntrinsicWidth()
int
getLayoutDirection()
final
int
getLevel()
int
getMinimumHeight()
int
getMinimumWidth()
abstract
int
getOpacity()
void
getOutline(Outline arg0)
boolean
getPadding(Rect arg0)
int[]
getState()
Region
getTransparentRegion()
void
inflate(Resources arg0, XmlPullParser arg1, AttributeSet arg2, Resources.Theme arg3)
void
inflate(Resources arg0, XmlPullParser arg1, AttributeSet arg2)
void
invalidateSelf()
boolean
isAutoMirrored()
boolean
isFilterBitmap()
boolean
isStateful()
final
boolean
isVisible()
void
jumpToCurrentState()
Drawable
mutate()
void
onBoundsChange(Rect arg0)
boolean
onLayoutDirectionChanged(int arg0)
boolean
onLevelChange(int arg0)
boolean
onStateChange(int[] arg0)
static
int
resolveOpacity(int arg0, int arg1)
void
scheduleSelf(Runnable arg0, long arg1)
abstract
void
setAlpha(int arg0)
void
setAutoMirrored(boolean arg0)
void
setBounds(int arg0, int arg1, int arg2, int arg3)
void
setBounds(Rect arg0)
final
void
setCallback(Drawable.Callback arg0)
void
setChangingConfigurations(int arg0)
void
setColorFilter(int arg0, PorterDuff.Mode arg1)
abstract
void
setColorFilter(ColorFilter arg0)
void
setDither(boolean arg0)
void
setFilterBitmap(boolean arg0)
void
setHotspot(float arg0, float arg1)
void
setHotspotBounds(int arg0, int arg1, int arg2, int arg3)
final
boolean
setLayoutDirection(int arg0)
final
boolean
setLevel(int arg0)
boolean
setState(int[] arg0)
void
setTint(int arg0)
void
setTintList(ColorStateList arg0)
void
setTintMode(PorterDuff.Mode arg0)
boolean
setVisible(boolean arg0, boolean arg1)
void
unscheduleSelf(Runnable arg0)
From
class
java.lang.Object
Object
clone()
boolean
equals(Object arg0)
void
finalize()
final
Class<?>
getClass()
int
hashCode()
final
void
notify()
final
void
notifyAll()
String
toString()
final
void
wait(long arg0, int arg1)
final
void
wait(long arg0)
final
void
wait()
From
interface
android.support.graphics.drawable.Animatable2Compat
From
interface
android.graphics.drawable.Animatable
abstract
boolean
isRunning()
abstract
void
start()
abstract
void
stop()
Public methods
applyTheme
void applyTheme (Resources.Theme t)
Parameters
t
Resources.Theme
canApplyTheme
boolean canApplyTheme ()
clearAnimationCallbacks
void clearAnimationCallbacks ()
Removes all existing animation callbacks.
clearAnimationCallbacks
void clearAnimationCallbacks (Drawable dr)
Utility function to clear animation callbacks from Drawable, when the drawable is
created from XML and referred in Java code, e.g: ImageView.getDrawable().
From API 24 on, the drawable is treated as an AnimatedVectorDrawable.
Otherwise, it is treated as AnimatedVectorDrawableCompat.
clearColorFilter
void clearColorFilter ()
create
AnimatedVectorDrawableCompat create (Context context,
int resId)
Create a AnimatedVectorDrawableCompat object.
Parameters
context
Context
: the context for creating the animators.
resId
int
: the resource ID for AnimatedVectorDrawableCompat object.
createFromXmlInner
AnimatedVectorDrawableCompat createFromXmlInner (Context context,
Resources r,
XmlPullParser parser,
AttributeSet attrs,
Resources.Theme theme)
Create a AnimatedVectorDrawableCompat from inside an XML document using an optional
Resources.Theme
. Called on a parser positioned at a tag in an XML
document, tries to create a Drawable from that tag. Returns null
if the tag is not a valid drawable.
Parameters
context
Context
r
Resources
parser
XmlPullParser
attrs
AttributeSet
theme
Resources.Theme
Throws
XmlPullParserException
IOException
draw
void draw (Canvas canvas)
getChangingConfigurations
int getChangingConfigurations ()
getConstantState
Drawable.ConstantState getConstantState ()
Note that we don't support constant state when SDK < 24.
Make sure you check the return value before using it.
getIntrinsicHeight
int getIntrinsicHeight ()
getIntrinsicWidth
int getIntrinsicWidth ()
getMinimumHeight
int getMinimumHeight ()
getMinimumWidth
int getMinimumWidth ()
getOpacity
int getOpacity ()
getPadding
boolean getPadding (Rect padding)
getState
int[] getState ()
getTransparentRegion
Region getTransparentRegion ()
inflate
void inflate (Resources res,
XmlPullParser parser,
AttributeSet attrs,
Resources.Theme theme)
Parameters
res
Resources
parser
XmlPullParser
attrs
AttributeSet
theme
Resources.Theme
Throws
XmlPullParserException
IOException
inflate
void inflate (Resources res,
XmlPullParser parser,
AttributeSet attrs)
Parameters
res
Resources
parser
XmlPullParser
attrs
AttributeSet
Throws
XmlPullParserException
IOException
isAutoMirrored
boolean isAutoMirrored ()
isRunning
boolean isRunning ()
isStateful
boolean isStateful ()
jumpToCurrentState
void jumpToCurrentState ()
mutate
Drawable mutate ()
mutate() will be effective only if the getConstantState() is returning non-null.
Otherwise, it just return the current object without modification.
registerAnimationCallback
void registerAnimationCallback (Drawable dr,
Animatable2Compat.AnimationCallback callback)
Utility function to register callback to Drawable, when the drawable is created from XML and
referred in Java code, e.g: ImageView.getDrawable().
From API 24 on, the drawable is treated as an AnimatedVectorDrawable.
Otherwise, it is treated as AnimatedVectorDrawableCompat.
Parameters
dr
Drawable
callback
Animatable2Compat.AnimationCallback
registerAnimationCallback
void registerAnimationCallback (Animatable2Compat.AnimationCallback callback)
Adds a callback to listen to the animation events.
Parameters
callback
Animatable2Compat.AnimationCallback
: Callback to add.
setAlpha
void setAlpha (int alpha)
setAutoMirrored
void setAutoMirrored (boolean mirrored)
Parameters
mirrored
boolean
setChangingConfigurations
void setChangingConfigurations (int configs)
setColorFilter
void setColorFilter (int color,
PorterDuff.Mode mode)
Parameters
color
int
mode
PorterDuff.Mode
setColorFilter
void setColorFilter (ColorFilter colorFilter)
Parameters
colorFilter
ColorFilter
setFilterBitmap
void setFilterBitmap (boolean filter)
Parameters
filter
boolean
setHotspot
void setHotspot (float x,
float y)
Parameters
x
float
y
float
setHotspotBounds
void setHotspotBounds (int left,
int top,
int right,
int bottom)
Parameters
left
int
top
int
right
int
bottom
int
setState
boolean setState (int[] stateSet)
setTint
void setTint (int tint)
setTintList
void setTintList (ColorStateList tint)
Parameters
tint
ColorStateList
setTintMode
void setTintMode (PorterDuff.Mode tintMode)
Parameters
tintMode
PorterDuff.Mode
setVisible
boolean setVisible (boolean visible,
boolean restart)
Parameters
visible
boolean
restart
boolean
unregisterAnimationCallback
boolean unregisterAnimationCallback (Animatable2Compat.AnimationCallback callback)
Removes the specified animation callback.
Parameters
callback
Animatable2Compat.AnimationCallback
: Callback to remove.
Returns
boolean
false
if callback didn't exist in the call back list, or true
if
callback has been removed successfully.
unregisterAnimationCallback
boolean unregisterAnimationCallback (Drawable dr,
Animatable2Compat.AnimationCallback callback)
Utility function to unregister animation callback from Drawable, when the drawable is
created from XML and referred in Java code, e.g: ImageView.getDrawable().
From API 24 on, the drawable is treated as an AnimatedVectorDrawable.
Otherwise, it is treated as AnimatedVectorDrawableCompat.
Parameters
dr
Drawable
callback
Animatable2Compat.AnimationCallback
Protected methods
onBoundsChange
void onBoundsChange (Rect bounds)
onLevelChange
boolean onLevelChange (int level)
onStateChange
boolean onStateChange (int[] state)