Android에서의 애니메이션 기본 ① 이미지를 사용하여 파라파라 만화 스타일로

AnimationDrawable 활용



볼륨의 ON/OFF를 전환하는 버튼을 상정.
ON일 때는 애니메이션으로 소리가 나오는 것을 어필.

완성형





drawable 설정



res/drawable/animation_sound.xml
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false"
    android:visible="true">

    <item
        android:drawable="@drawable/sound_on_max"
        android:duration="750" />
    <item
        android:drawable="@drawable/sound_on_min"
        android:duration="500" />
    <item
        android:drawable="@drawable/sound_on_mid"
        android:duration="500" />

</animation-list>

매개변수




매개변수
개요


android:oneshot
true라고 반복 없음. false이면 반복

android:visible
초기 상태에서의 가시 상태

android:duration
표시 시간(ms)


참고 이미지




파일 이름
이미지


sound_on_max


sound_on_mid


sound_on_min


sound_off



활동 설정


public class MainActivity extends AppCompatActivity {

    private ImageView img;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        img = (ImageView) findViewById(R.id.imageView);
        img.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (img.getBackground() instanceof AnimationDrawable) {
                    img.setBackground(ContextCompat.getDrawable(MainActivity.this, R.drawable.sound_off));
                } else {
                    img.setBackground(ContextCompat.getDrawable(MainActivity.this, R.drawable.animation_sound));
                    // AnimationDrawableを取得
                    AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();
                    // アニメーションの開始
                    frameAnimation.start();
                }
            }
        });
    }

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if (img == null) {
            return;
        }
        if (img.getBackground() instanceof AnimationDrawable) {
            // AnimationDrawableを取得
            AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();

            // アニメーションの開始
            frameAnimation.start();
        }
    }
}

참고까지!
github -> htps : // 기주 b. 코 m / 타카 오카 / 아니 마치 온 D 라와 b

참고 페이지



h tp : /// ch 보오 s r. jp. 오 rg / an drio d / 우이 / 2192 /
h tps : //로 한다. 오, ぇ. 코 m / 이콘 s / # i c_ ゔ ぅ ぅ

좋은 웹페이지 즐겨찾기