1. 获取资源
首先需要获取帧动画的资源,然后利用工具将动画拆分成图片帧,最后将所有图片帧拷贝到drawable-xxx文件下:
2. 创建动画
接下来,首先创建一个drawable资源文件,然后再该文件内创建一个名为run_girl_anim.xml文件,并且为该资源选择animation-list根,最后添加下面代码:
<?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/girl_1" android:duration="200" />
<item android:drawable="@drawable/girl_2" android:duration="200" />
<item android:drawable="@drawable/girl_3" android:duration="200" />
<item android:drawable="@drawable/girl_4" android:duration="200" />
<item android:drawable="@drawable/girl_5" android:duration="200" />
<item android:drawable="@drawable/girl_6" android:duration="200" />
<item android:drawable="@drawable/girl_7" android:duration="200" />
<item android:drawable="@drawable/girl_8" android:duration="200" />
<item android:drawable="@drawable/girl_9" android:duration="200" />
<item android:drawable="@drawable/girl_10" android:duration="200" />
<item android:drawable="@drawable/girl_11" android:duration="200" />
</animation-list>
动画资源到现在就创建完成了,接下来再布局文件中引用该动画:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/run_girl_iv"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/<span style="font-size:14px;">run_girl_anim</span>" />
</RelativeLayout>
3. 播放动画
虽然ImageView已经引用动画资源,但是此时动画还不能正常播放,因为帧动画的播放需要靠代码启动,接下来再代码中如下获取帧动画对象,然后启动播放:
ImageView runGirlIv = (ImageView) findViewById(R.id.run_girl_iv);
AnimationDrawable animation = (AnimationDrawable) runGirlIv.getDrawable();
animation.start();
4. 注意
android:onshot=“true”表示帧动画只播放一次,如果不设置该属性,帧动画将循环播放。
android:duration="200"表示每帧图片播放时长(停留时间)。