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)