帧动画
- xml方式(oneshot控制是否循环播放)
<?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="100"></item>
<item android:drawable="@drawable/girl_2" android:duration="100"></item>
<item android:drawable="@drawable/girl_3" android:duration="100"></item>
<item android:drawable="@drawable/girl_4" android:duration="100"></item>
<item android:drawable="@drawable/girl_5" android:duration="100"></item>
<item android:drawable="@drawable/girl_6" android:duration="100"></item>
<item android:drawable="@drawable/girl_7" android:duration="100"></item>
<item android:drawable="@drawable/girl_8" android:duration="100"></item>
<item android:drawable="@drawable/girl_9" android:duration="100"></item>
<item android:drawable="@drawable/girl_10" android:duration="100"></item>
<item android:drawable="@drawable/girl_11" android:duration="100"></item>
</animation-list>
然后在布局文件中给ImageView设置background
<ImageView
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/animation" />
现在Imageview控件的背景已经是一组帧动画了,我们只需要开启动画final AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
animationDrawable.start();
}
});
-
Java代码实现
final AnimationDrawable animationDrawable = new AnimationDrawable();
animationDrawable.addFrame(getResources().getDrawable(R.drawable.girl_1), 100);
animationDrawable.addFrame(getResources().getDrawable(R.drawable.girl_2), 100);
animationDrawable.addFrame(getResources().getDrawable(R.drawable.girl_3), 100);
animationDrawable.addFrame(getResources().getDrawable(R.drawable.girl_4), 100);
animationDrawable.addFrame(getResources().getDrawable(R.drawable.girl_5), 100);
animationDrawable.addFrame(getResources().getDrawable(R.drawable.girl_6), 100);
animationDrawable.addFrame(getResources().getDrawable(R.drawable.girl_7), 100);
animationDrawable.addFrame(getResources().getDrawable(R.drawable.girl_8), 100);
animationDrawable.addFrame(getResources().getDrawable(R.drawable.girl_9), 100);
animationDrawable.addFrame(getResources().getDrawable(R.drawable.girl_10), 100);
animationDrawable.addFrame(getResources().getDrawable(R.drawable.girl_11), 100);
imageView.setBackground(animationDrawable);
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
animationDrawable.start();
}
});