使用AnimationDrawable实现帧动画
帧动画是一种比较传统的动画,它是由一系列不同的图像创建的,按照顺序播放,就像播放电影一样。
虽然可以使用AnimationDrawable类在代码中定义与使用动画,但使用单个XML文件定义帧动画会更简单。
XML文件由一个元素作为根节点和一系列子节点组成,每个子节点定义一个框架:一个可绘制的框架资源和帧持续时间。
注意:不能在onCreate()调用AnimationDrawable的start()方法,因为AnimationDrawable还没有完全加载到Activity中。如果你想要立即播放动画而不需要交互,那么你可以从Activity的onStart()中的方法调用该动画的start()方法,这样当该Activity的视图可见时,该动画将会自动播放。
这里有一个Activity示例,其中动画添加到一个ImageView动画中,然后点击按钮 启动/停止 动画:
以下是可绘制动画的示例XML文件:
该动画仅运行36帧,每一帧持续100ms。通过将android:oneshot 列表属性设置为true,它将循环一次,然后停止并保持最后一帧。如果它设置为false,则动画将循环。将这个xml保存在res/drawable/anim_draw_loading.xml中,可以将其作为背景图像添加到View中,然后可以调用播放。
drawable/anim_draw_loading.xml
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true">
<item android:drawable="@drawable/pointer_wait_0" android:duration="100" />
<item android:drawable="@drawable/pointer_wait_1" android:duration="100" />
<item android:drawable="@drawable/pointer_wait_2" android:duration="100" />
<item android:drawable="@drawable/pointer_wait_3" android:duration="100" />
<item android:drawable="@drawable/p