欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android动画之帧动画

程序员文章站 2022-03-16 14:18:57
...

Android动画之帧动画

帧动画,顾名思义就是一帧一帧的动画,就是把图片一张一张的按顺序的展示出来。需要用到的api是AnimationDrawable。

实现方法1

把图片放入一个数组中,然后利用AnimationDrawable循环遍历即可。

//这里把图片放入数组中
public static final int[] ids_index = {R.drawable.ic_icon_index_svg_1,R.drawable.ic_icon_index_svg_2,R.drawable.ic_icon_index_svg_3,R.drawable.ic_icon_index_svg_4
            ,R.drawable.ic_icon_index_svg_5,R.drawable.ic_icon_index_svg_6,R.drawable.ic_icon_index_svg_7,R.drawable.ic_icon_index_svg_8
            ,R.drawable.ic_icon_index_svg_9,R.drawable.ic_icon_index_svg_10,R.drawable.ic_icon_index_svg_11,R.drawable.ic_icon_index_svg_12
            ,R.drawable.ic_icon_index_svg_13,R.drawable.ic_icon_index_svg_14,R.drawable.ic_icon_index_svg_15,R.drawable.ic_icon_index_svg_16
            ,R.drawable.ic_icon_index_svg_17,R.drawable.ic_icon_index_svg_18,R.drawable.ic_icon_index_svg_19};

//具体帧动画的实现
//创建一个AnimationDrawable
        AnimationDrawable animationDrawable1 = new AnimationDrawable();

        //通过for循环添加每一帧动画
        for(int i = 0 ; i < ids_index.length ; i ++){
            Drawable frame = context.getResources().getDrawable(ids_index[i]);
            //设定时长
            animationDrawable1.addFrame(frame,10);
        }
        //true代表动画只执行一次
        animationDrawable1.setOneShot(true);
        //将动画设置到背景上
        iv_index_icon.setImageDrawable(animationDrawable1);
        //开启帧动画
        animationDrawable1.start();
实现方法2

在drawable下新建一个animation-list,把要动画的每一帧图片放进去,然后把这个drawable放入要显示动画的控件中,最后利用AnimationDrawable 实现动画即可。

    AnimationDrawable animationDrawable = (AnimationDrawable) iv_index_icon.getDrawable();
        //开启帧动画
        animationDrawable.start();
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="true">
    <item android:drawable="@drawable/ic_icon_index_svg_1" android:duration="10"/>
    <item android:drawable="@drawable/ic_icon_index_svg_2" android:duration="10"/>
    <item android:drawable="@drawable/ic_icon_index_svg_3" android:duration="10"/>
    <item android:drawable="@drawable/ic_icon_index_svg_4" android:duration="10"/>
    <item android:drawable="@drawable/ic_icon_index_svg_5" android:duration="10"/>
    <item android:drawable="@drawable/ic_icon_index_svg_6" android:duration="10"/>
    <item android:drawable="@drawable/ic_icon_index_svg_7" android:duration="10"/>
    <item android:drawable="@drawable/ic_icon_index_svg_8" android:duration="10"/>
    <item android:drawable="@drawable/ic_icon_index_svg_9" android:duration="10"/>
    <item android:drawable="@drawable/ic_icon_index_svg_10" android:duration="10"/>
    <item android:drawable="@drawable/ic_icon_index_svg_11" android:duration="10"/>
    <item android:drawable="@drawable/ic_icon_index_svg_12" android:duration="10"/>
    <item android:drawable="@drawable/ic_icon_index_svg_13" android:duration="10"/>


</animation-list>