AnimationDrawable使用简介

Drawable animation可以加载Drawable资源实现帧动画。AnimationDrawable是实现Drawable animations的基本类。推荐用XML文件的方法实现Drawable动画,不推荐在代码中实现。这种XML文件存放在工程中res/drawable/目录下。XML文件的指令(即属性)为动画播放的顺序和时间间隔。

​ 在XML文件中元素为根节点,节点定义了每一帧,表示一个drawable资源的帧和帧间隔。下面是一个XML文件的实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">

<item
android:drawable="@drawable/loading1"
android:duration="100" />

<item
android:drawable="@drawable/loading2"
android:duration="100" />

<item
android:drawable="@drawable/loading3"
android:duration="100" />

<item
android:drawable="@drawable/loading4"
android:duration="100" />

<item
android:drawable="@drawable/loading5"
android:duration="100" />

</animation-list>

设置Android:oneshot属性为true,表示此次动画只执行一次,最后停留在最后一帧。设置为false则动画循环播放。文件可以添加为Image背景,触发的时候播放。

下面简单通过一个例子,来给ImageView设置次动画效果,具体实现方法为

通过View. setBackgroundResource(resID). animation.start().

1
2
3
4
5
private AnimationDrawable animationDrawable;
img = (ImageView) findViewById(R.id.img);
img.setImageResource(R.drawable.anim_loading);
animationDrawable = ((AnimationDrawable) img.getDrawable());
animationDrawable.start();

Demo地址:https://github.com/zhangmiaocc/AnimationDrawable

Blog地址:https://zhangmiao.cc/

坚持原创技术分享,您的支持将鼓励我继续创作!