注意:本篇文章是本人阅读关于Android动画的文章所写下的总结,方便以后查阅,所有内容非原创,侵权删。
本篇文章内容来自于
- Android高级进阶 顾浩鑫
- Android自定义控件三部曲文章索引之动画篇
目录
2.逐帧动画 FrameAnimation/DrawableAnimation
2.逐帧动画 FrameAnimation/DrawableAnimation
运用场景:设计师给出一系列状态不断变化的图片,开发者可以指定每一帧对应的图片和持续的时间,就可以开始播放动画。
实现方式分为:XML实现+代码实现
XML实现
1.将图片资源放在res/drawable里
2.在res/drawable中新建帧动画(直接new drawable resource file 即可)
<?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/a_0"
android:duration="100" />
<item
android:drawable="@drawable/a_1"
android:duration="100" />
<item
android:drawable="@drawable/a_2"
android:duration="100" />
</animation-list>
android:oneshot="false" 用来控制动画是否循环播放
android:duration="100"指定每一帧的播放持续时间
3.播放帧动画
ImageView iv_frame_show = findViewById(R.id.iv_frame_show);
//播放动画
iv_frame_show.setImageResource(R.drawable.anim_frame);
AnimationDrawable drawable = (AnimationDrawable) iv_frame_show.getDrawable();
drawable.start();
code代码实现
1.将图片资源放在res/drawable里
2.代码实现
ImageView iv_frame_show = findViewById(R.id.iv_frame_show);
//设置+播放动画
AnimationDrawable animationDrawable = new AnimationDrawable();
for (int i = 1; i <= 5; i++) {
int id = getResources().getIdentifier("pic" + i, "drawable", getPackageName());
Drawable drawable1 = getResources().getDrawable(id);
animationDrawable.addFrame(drawable1, 120);
}
iv_frame_show.setBackgroundDrawable(animationDrawable);
animationDrawable.start();