逐帧动画-简单使用

1.实现逐帧动画方式有2种

A.xml资源文件方式

B.代码方式

2.xml资源文件方式

先在res/drawable中新建一个xml文件,还要准备三张图片:a/b/c


 
     
    
    
 

然后在代码中设置

//资源方式-逐帧动画
        imag1.setBackgroundResource(R.drawable.frame_animation); //资源方式必须用该方法,不用setBackground
        kz1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AnimationDrawable animationDrawable1 = (AnimationDrawable) imag1.getBackground();
                if (tag1 == 0) {
                    animationDrawable1.start(); //控制
                    tag1 = 1;
                } else {
                    animationDrawable1.stop();
                    tag1 = 0;
                }
            }
        });

3.代码方式:

//逐帧动画-代码方式A
        AnimationDrawable animationDrawable2 = new AnimationDrawable();
        Drawable drawablea = getResources().getDrawable(R.drawable.a);
        Drawable drawableb = getResources().getDrawable(R.drawable.b);
        Drawable drawablec = getResources().getDrawable(R.drawable.c);
        animationDrawable2.addFrame(drawablea, 120); //添加一帧动画,并给定时长
        animationDrawable2.addFrame(drawableb, 120);
        animationDrawable2.addFrame(drawablec, 120);

//逐帧动画-代码方式A
        imag2.setBackground(animationDrawable2);
        animationDrawable2.setOneShot(false);
        kz2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AnimationDrawable animationDrawable2 = (AnimationDrawable) imag2.getBackground();
                if (tag2 == 0) {
                    animationDrawable2.start();
                    tag2 = 1;
                } else {
                    animationDrawable2.stop();
                    tag2 = 0;
                }
            }
        });

4.ok





你可能感兴趣的:(逐帧动画-简单使用)