返回首页
当前位置: 主页 > 网络编程 > Android教程 >

Android用xml加载帧动画详解

时间:2019-11-21 13:36来源:知行网www.zhixing123.cn 编辑:麦田守望者

 在安卓中动画主要分为这三大类 分别为视图动画(View Animation) ,帧动画(Drawable Animation),属性动画(PropertyAnimation)。

帧动画就是一个接一个地加载一系列可绘制的资源来创建一个动画。这是一种传统的动画,从某种意义上说,它是由一系列不同的图像组成的,按照顺序播放,就像一卷电影,可以实现比较复杂而酷炫的动画,但是因为加载的是图片资源,对于内存以及UI的性能损耗较大。使用时需要进行权衡。
 
下面介绍由xml加载的方式实现帧动画。
在res/drawable/目录下新建一个animation-list动画资源文件。
 
1.<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
2.    android:oneshot="true">
3.
4.    <item android:drawable="@drawable/frame01" android:duration="500"/>
5.    <item android:drawable="@drawable/frame02" android:duration="500"/>
6.    <item android:drawable="@drawable/frame03" android:duration="500"/>
7.    <item android:drawable="@drawable/frame04" android:duration="500"/>
8.
9.</animation-list>
android:oneshot属性为true时,它将只循环一次,然后停止并保持最后一帧,否则一直循环。然后将这个资源文件设置到对应的控件上,如ImageView。
1./**
2.     * xml设置帧动画
3.     */
4.    private void frameAnimByXml() {
5.
6.        btnStartAnim.setOnClickListener(new View.OnClickListener() {
7.            @Override
8.            public void onClick(View v) {
9.                ivFramge.setImageResource(R.drawable.frame_anim);
10.                animationDrawable = (AnimationDrawable) ivFramge.getDrawable();
11.                if (animationDrawable != null){
12.                    animationDrawable.start();//开始动画
13.                }
14.            }
15.        });
16.
17.        btnStopAnim.setOnClickListener(new View.OnClickListener() {
18.            @Override
19.            public void onClick(View v) {
20.                if (animationDrawable != null){
21.                    animationDrawable.stop();//停止动画
22.                }
23.            }
24.        });
25.    }
需要注意的是,start()方法调用AnimationDrawable不能在onCreate()方法,因为AnimationDrawable还没有完全连接到窗口。
------分隔线----------------------------
标签(Tag):
------分隔线----------------------------
推荐内容
猜你感兴趣