下面来学习逐帧动画
目录
1. 作用对象
视图控件(View)
1.如Android的TextView、Button等等
2.不可作用于View组件的属性,如:颜色、背景、长度等等
2. 原理
- 将动画拆分为 帧 的形式,且定义每一帧 = 每一张图片
- 逐帧动画的本质:按序播放一组预先定义好的图片
3. 具体使用
在Java代码中使用:
- 首先将每一帧图片添加到Drawable中
- 直接从drawable文件夹获取动画资源(图片)
animationDrawable = new AnimationDrawable();
for (int i = 0; i <= 25; i++) {
int id = getResources().getIdentifier("a" + i, "drawable", getPackageName());//图片资源的名称
Drawable drawable = getResources().getDrawable(id);
animationDrawable.addFrame(drawable, 100);
}
<-- 开始动画 -->
btn_startFrame.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
animationDrawable.setOneShot(true);
iv.setImageDrawable(animationDrawable);
// 获取资源对象
animationDrawable.stop();
// 特别注意:在动画start()之前要先stop(),不然在第一次动画之后会停在最后一帧,这样动画就只会触发一次
animationDrawable.start();
// 启动动画
}
});
<-- 停止动画 -->
btn_stopFrame.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
animationDrawable.setOneShot(true);
iv.setImageDrawable(animationDrawable);
animationDrawable.stop();
}
});
4. 特点
- 优点:使用简单、方便
- 缺点:容易引起 OOM,因为会使用大量 & 尺寸较大的图片资源
尽量避免使用尺寸较大的图片
5. 应用场景
例如在软件中添加一个动画效果,增加APP的美观性