帧动画 FrameAnimation
- 很简单,这里的代码是Android API中的
- 顺序播放一组预先定义好的图片,类似于电影播放
- 系统提供AnimationDrawable来使用帧动画
XML定义AnimationDrawable
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true">
<item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
<item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
<item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list>
- oneshot决定是否重复播放(false为重复播放)
- duration决定这张到下一张间隔多少毫秒
- drawable决定显示什么图片
代码中实现
AnimationDrawable rocketAnimation;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 将帧动画放在ImageView中显示
ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
// 将背景资源设置为我们定义的XML文件
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
// 获得ImageView的背景资源并设置为动画
rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
}
public boolean onTouchEvent(MotionEvent event) {
// 按下开始播放
if (event.getAction() == MotionEvent.ACTION_DOWN) {
rocketAnimation.start();
return true;
}
return super.onTouchEvent(event);
}