有一个需求,需要做一个简单的动画,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(); }
|