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)