8. android动画《二》逐帧动画(Frame Animation)

逐帧动画(Frame Animation).jpg

一. 作用对象

1. 作用对象: 视图控件View。
2. 不可作用于属性或者其它对象。

二. 原理

原理:按序播放一组预先定义好的图片。
将动画拆分为 帧 的形式,且定义每一帧 = 每一张图片

自己玩小技巧:
  1. 找到自己需要的gif动画
  2. 用 gif分解软件将 gif 分解成一张张图片即可

三. 优缺点

缺点:效果单一,逐帧播放需要很多图片,占用内存空间较大,容易引发OOM
优点:制作简单

四. 使用方式

1. xml方式

res/drawable/animation_list.xml




    
    
    
    
    
    
    
    

Activity中调用:

  iv.setImageResource(R.drawable.animation_list);
  animationDrawable = (AnimationDrawable) iv.getDrawable();
  animationDrawable.start(); //开始动画
  animationDrawable.stop(); //结束动画
2. java代码方式
  animationDrawable = new AnimationDrawable();
        for (int i = 1; i <= 8; i++) {
            //第一个参数为ID名,第二个为资源属性是ID或者是Drawable,第三个为包名
            int id = getResources().getIdentifier("icon_redwallet_open" + i, "drawable", getPackageName());
            Drawable drawable = getResources().getDrawable(id);
            animationDrawable.addFrame(drawable, 100);
            animationDrawable.setOneShot(false); //false循环   true只播放一次
            iv.setImageDrawable(animationDrawable);
        }
  animationDrawable.start(); //开始动画
  animationDrawable.stop(); //结束动画

五. 应用场景

较为复杂的个性化动画效果。

你可能感兴趣的:(8. android动画《二》逐帧动画(Frame Animation))