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

参考书籍:《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的动画之后,简单总结了一下,看完这篇文章就可以自己动手写一个简单的动画了 正文 An...
    墨月城汐阅读 1,478评论 0 5
  • 最近工作比较清闲,所以想系统的复习和学习下自己比较短缺的知识,所以。。。 程序运行效果图: Android动画主要...
    小沈新手阅读 520评论 0 1
  • 在前面PopupWindow 实现显示仿腾讯新闻底部弹出菜单有用到Animation动画效果来实现菜单的显示和隐藏...
    随心随性_0a25阅读 960评论 0 0
  • 1 背景 不能只分析源码呀,分析的同时也要整理归纳基础知识,刚好有人微博私信让全面说说Android的动画,所以今...
    未聞椛洺阅读 2,763评论 0 10
  • 李唐风 今日多喜临门。父亲八十一寿辰,适逢西元历2018年元旦第二天。加拿大还是元旦傍晚,东边树梢一轮澄镜,挂于檐...
    李唐风阅读 293评论 0 1