返回首页
当前位置: 主页 > 编程语言 > CSS教程 >

Android用代码加载帧动画详解

时间:2019-11-21 13:58来源:电脑教程学习网 www.etwiki.cn 编辑:小山哥
在安卓中动画主要分为这三大类 分别为视图动画(View Animation) ,帧动画(Drawable Animation),属性动画(PropertyAnimation)。
帧动画就是一个接一个地加载一系列可绘制的资源来创建一个动画。这是一种传统的动画,从某种意义上说,它是由一系列不同的图像组成的,按照顺序播放,就像一卷电影,可以实现比较复杂而酷炫的动画,但是因为加载的是图片资源,对于内存以及UI的性能损耗较大。使用时需要进行权衡。
 
下面介绍由代码加载的方式实现帧动画。
1./**
2.     * 代码设置帧动画
3.     */
4.    private void frameAnimByCode(){
5.        animationDrawable = new AnimationDrawable();
6.        Drawable drawable1 = getResources().getDrawable(R.drawable.frame01);
7.        Drawable drawable2 = getResources().getDrawable(R.drawable.frame02);
8.        Drawable drawable3 = getResources().getDrawable(R.drawable.frame03);
9.        Drawable drawable4 = getResources().getDrawable(R.drawable.frame04);
10.
11.        //将drawable设置到AnimationDrawable
12.        animationDrawable.addFrame(drawable1,500);
13.        animationDrawable.addFrame(drawable2,500);
14.        animationDrawable.addFrame(drawable3,500);
15.        animationDrawable.addFrame(drawable4,500);
16.        animationDrawable.setOneShot(true);
17.
18.        btnStartAnim.setOnClickListener(new View.OnClickListener() {
19.            @Override
20.            public void onClick(View v) {
21.
22.                ivFramge.setImageDrawable(animationDrawable);
23.
24.                if (animationDrawable != null){
25.                    animationDrawable.stop();//调用start前要先stop,不然在第一次动画之后会停在最后一帧,这样动画就只会触发一次
26.                    animationDrawable.start();
27.                }
28.            }
29.        });
30.
31.        btnStopAnim.setOnClickListener(new View.OnClickListener() {
32.            @Override
33.            public void onClick(View v) {
34.                if (animationDrawable != null){
35.                    animationDrawable.stop();
36.                }
37.            }
38.        });
39.    }

------分隔线----------------------------
标签(Tag):
------分隔线----------------------------
推荐内容
猜你感兴趣