美文网首页程序员
Android学习笔记(八)| Android动画(中)—— 帧

Android学习笔记(八)| Android动画(中)—— 帧

作者: CCCode1997 | 来源:发表于2019-02-22 10:06 被阅读0次

    参考书籍:《Android开发艺术探索》 任玉刚
    如有错漏,请批评指出!

    帧动画是顺序播放一组预先定义好的图片。不同于View动画,系统提供了一个类 AnimationDrawable 来使用帧动画,它的使用很简单,下面来看:

    1. 首先当然是要准备一组图片素材:

      图片来源: https://blog.csdn.net/aminfo/article/details/7847761
      这里我提供一个素材下载地址:https://pan.baidu.com/s/1655oSJV66fNZu-LJ9NiPBg 提取码:un0d

    2. 在 res/drawable 目录下定义一个 Drawable resource file,要定义帧动画,我们需要用到 <drawable-list/> 标签

      <?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/draw1" android:duration="200"/>
          <item android:drawable="@drawable/draw2" android:duration="200"/>
          <item android:drawable="@drawable/draw3" android:duration="200"/>
          <item android:drawable="@drawable/draw4" android:duration="200"/>
          <item android:drawable="@drawable/draw5" android:duration="200"/>
          <item android:drawable="@drawable/draw6" android:duration="200"/>
      </animation-list>
      

      这里涉及到 <drawable-list/> 标签的一个常用属性:

      • oneshot: 它的可选值是bool型,true 表示只播放一次,停在最后一帧,false 表示 无限循环播放(默认为false)。

      接下来就是添加每一帧的item列表,对应两个属性:

      • drawable: 素材图片
      • duration: 当前帧播放时间
    3. 最后就是将我们定义的 AnimationDrawable 作为View的背景并通过 Drawable 来播放动画

      public class DrawableAnimActivity extends AppCompatActivity {
      
          @BindView(R.id.draw_anim)
          ImageView imgAnim;
      
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_drawable_anim);
              ButterKnife.bind(this);
      
              imgAnim.setBackgroundResource(R.drawable.draw_anim);
              AnimationDrawable drawable = (AnimationDrawable)imgAnim.getBackground();
              drawable.start();
          }
      }
      
    下面来看一下最终效果:

    帧动画的使用很简单,但是比较容易引起 OOM,因此在使用时要尽量避免使用过多尺寸较大的图片。


    上一篇:Android学习笔记(七)| Android动画(上)—— View动画
    下一篇:Android学习笔记(九)| Android动画(下)—— 属性动画

    相关文章

      网友评论

        本文标题:Android学习笔记(八)| Android动画(中)—— 帧

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