美文网首页
逐帧动画解析

逐帧动画解析

作者: 彩虹_直至黑白 | 来源:发表于2022-02-12 15:28 被阅读0次

帧动画通过顺序播放一系列图像从而产生动画效果,可以简单理解为图片切换动画,很显然,如果图片过多过大就会导致OOM。
不同于View动画,系统提供了另外一个类AnimationDrawable来使用帧动画,帧动画的使用比较简单。首先需要通过XML来定义一个AnimationDrawable。

 <?xml version="1.0" encoding="utf-8"?>
    <animation-list
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:oneshot="true" // 设置是否只播放一次,默认为false
        >

    // item = 动画图片资源;duration = 设置一帧持续时间(ms)
        <item android:drawable="@drawable/a0" android:duration="100"/>
        <item android:drawable="@drawable/a1" android:duration="100"/>
        <item android:drawable="@drawable/a2" android:duration="100"/>
        <item android:drawable="@drawable/a3" android:duration="100"/>
        <item android:drawable="@drawable/a4" android:duration="100"/>
        <item android:drawable="@drawable/a5" android:duration="100"/>
        <item android:drawable="@drawable/a6" android:duration="100"/>
        <item android:drawable="@drawable/a7" android:duration="100"/>
        <item android:drawable="@drawable/a8" android:duration="100"/>
        <item android:drawable="@drawable/a9" android:duration="100"/>
        <item android:drawable="@drawable/a10" android:duration="100"/>
        <item android:drawable="@drawable/a11" android:duration="100"/>
    </animation-list>

然后将上述的Drawable作为View的背景并通过Drawable来播放动画即可:

            // 载入动画
            btn_startFrame.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 1. 设置动画
                    iv.setImageResource(R.drawable.knight_attack);
                    // 2. 获取动画对象
                    animationDrawable = (AnimationDrawable) iv.getDrawable();
                    // 3. 启动动画
                    animationDrawable.start();
                    
                }
            });

            // 停止动画
            btn_stopFrame.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    
                    // 1. 设置动画
                    iv.setImageResource(R.drawable.knight_attack);
                    // 2. 获取动画对象
                    animationDrawable = (AnimationDrawable) iv.getDrawable();
                    // 3. 暂停动画
                    animationDrawable.stop();
                }
            });

相关文章

  • 逐帧动画解析

    帧动画通过顺序播放一系列图像从而产生动画效果,可以简单理解为图片切换动画,很显然,如果图片过多过大就会导致OOM。...

  • 每帧1MB的图片做帧动画会卡?不存在的!—— SurfaceVi

    继上篇用“SurfaceView逐帧解析 & 帧复用”优化了帧动画内存性能后,一个更复杂的问题付出了水面:帧动画时...

  • Android 动画总结

    Android 中的动画可以分为以下几类: 逐帧动画 补间动画 属性动画 一、逐帧动画 逐帧动画的原理就是让一系列...

  • 安卓动画

    Android 中的动画可以分为以下几类: 逐帧动画 补间动画 属性动画 1、逐帧动画 逐帧动画的原理就是让一系列...

  • Android 动画的使用

    最新总结,请移步 Android 动画解析 0x01 分类 视图动画(逐帧动画/补间动画)属性动画转场动画 1. ...

  • Android动画

    文章脑图 1、Android动画种类 逐帧动画、补间动画、属性动画 逐帧动画 逐帧动画的原理就是让一系列的静态图片...

  • Android 动画

    Android中动画分为三种: 逐帧动画 补间动画 属性动画 逐帧动画 逐帧动画类似于gif或是电影的原理,通过将...

  • Android动画之逐帧动画FrameAnimation

    1 逐帧动画介绍 视图动画由两部分组成,补间动画和逐帧动画,前面文章已经讲解了补间动画,下面讲解逐帧动画。Fram...

  • Android 动画机制(一)

    逐帧动画(Frame Animation) 逐帧动画也叫Drawable Animation,是最简单最直...

  • Android 动画锦集

    Android 动画可分为逐帧动画、补间动画、属性动画。使用传统的逐帧动画、补间动画可以实现 Android 基本...

网友评论

      本文标题:逐帧动画解析

      本文链接:https://www.haomeiwen.com/subject/zoxokrtx.html