フレーム単位のアニメーション-簡単に使用

2326 ワード

1.フレームごとのアニメーションを実現する方式は2種類ある
A.xmlリソースファイル方式
B.コード方式
2.xmlリソースファイル方式
まずres/drawableにxmlファイルを新規作成し、a/b/cの3枚の画像を用意します.

 
     
    
    
 

そしてコードに設定
//    -    
        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