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

逐帧动画(Frame Animation).jpg

一. 作用对象

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

二. 原理

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

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

三. 优缺点

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

四. 使用方式

1. xml方式

res/drawable/animation_list.xml

<?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/icon_redwallet_open1"
        android:duration="100"/>
    <item android:drawable="@drawable/icon_redwallet_open2"
        android:duration="100"/>
    <item android:drawable="@drawable/icon_redwallet_open3"
        android:duration="100"/>
    <item android:drawable="@drawable/icon_redwallet_open4"
        android:duration="100"/>
    <item android:drawable="@drawable/icon_redwallet_open5"
        android:duration="100"/>
    <item android:drawable="@drawable/icon_redwallet_open6"
        android:duration="100"/>
    <item android:drawable="@drawable/icon_redwallet_open7"
        android:duration="100"/>
    <item android:drawable="@drawable/icon_redwallet_open8"
        android:duration="100"/>
</animation-list>

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(); //结束动画

五. 应用场景

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容