Android Drawable动画的实现

有一个需求,需要做一个简单的动画,UI讲动画每一帧的图片都交给了我,那么该如何去做呢?

这里使用了animation-list来实现此功能,实现方式也很简单,在drawable下创建对应的xml文件即可。

创建动画Drawable

相关参数介绍:

  • oneshot: 动画是否只执行一次 true 只执行一次 false 循环播放动画
  • android:duration: 动画每一张播放的长度,单位ms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="utf-8"?>
<animation-list
xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item
android:drawable="@drawable/loading_01"
android:duration="100" />
<item
android:drawable="@drawable/loading_02"
android:duration="100" />
<item
android:drawable="@drawable/loading_03"
android:duration="100" />
<item
android:drawable="@drawable/loading_04"
android:duration="100" />
<item
android:drawable="@drawable/loading_05"
android:duration="100" />
<item
android:drawable="@drawable/loading_06"
android:duration="100" />
<item
android:drawable="@drawable/loading_07"
android:duration="100" />
<item
android:drawable="@drawable/loading_08"
android:duration="100" />
</animation-list>

播放动画

使用AnimationDrawable,获取ImageView中的Drawable,强转后,执行start方法播放动画。

1
2
AnimationDrawable drawable = (AnimationDrawable) imageview.getDrawable();
drawable.start();

停止动画

通过isRunning()来判断动画是否处于播放状态,然后再进行stop停止动画。

1
2
3
if (drawable.isRunning()) {
drawable.stop();
}
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×