2010年11月11日木曜日

Viewを回転させたり拡大縮小させたり

Androidにもアニメーションを行わせる仕組みが予め組み込まれています。
iPhoneのアニメーションのやり方とは大きく異なります。

Androidでは1枚の画像を拡大縮小・回転・移動・透過変更させることを、Tween Animationと呼ぶそうです。 Tween AnimationはAnimationクラスを使用します。

また、複数画像をパラパラ漫画のように表示するアニメーションをFrame-By-Frame Animationと呼ぶそうです。Frame-ByFrame AnimationはAnimationDrawableクラスを使用します。

アニメーションの内容をXMLファイルで用意しておき、それをAnimationクラスに読み込ませます。
以下のファイルをリソースのanimフォルダにanimation.xmlとしてプロジェクトに追加しておきます。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:duration="5000"
        android:repeatCount="infinite"
        android:repeatMode="restart" />
</set>

上記は透過レベルを0〜1に5秒間でじわっと変化させるアニメーションの例です。
拡大縮小・回転等の各タグの意味はDeveloperページをご覧下さい。


そしてソースを以下のようにします。

    private ImageView imgView = null;
    private Animation mAnim = null;
    ・
    ・
        imgView = (ImageView)findViewById(R.id.animView);


        // animation.xmlファイルを読み込み
        mAnim = AnimationUtils.loadAnimation(this, R.anim.animation);
        imgView.startAnimation(mAnim);

上記はXMLファイルをAnimationクラスに読み込み、ImageViewクラスに設定した画像の透過レベルをアニメーションで表示させています。

0 件のコメント:

コメントを投稿