サイト移転のお知らせ:http://techbooster.org/に移転しました

AnimationDrawableでアニメーションを作る

12月 7, 2010   //   by @mhidaka   //   ユーザインターフェース  //  2 Comments

AnimationDrawableを使うと、XMLでリソースを用意するだけで簡単にアニメーションが作成できます。

画像を事前に用意します。今回は6枚の画像を(android_logo,1~5.jpgを)連続表示して回転しているように見えるアニメーションを作成します。
リソースの登録は通常通り、Drawableに追加します(パラパラマンガのようになります)
今回はXMLでアニメーションの設定を行うのでDrawableの下にxmlも一緒に配置します

XMLリソースの設定

/res/drawable/android_animation.xml

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
    <item android:drawable="@drawable/android_logo" android:duration="50" />
    <item android:drawable="@drawable/android_logo2" android:duration="50" />
    <item android:drawable="@drawable/android_logo3" android:duration="50" />
    <item android:drawable="@drawable/android_logo4" android:duration="50" />
    <item android:drawable="@drawable/android_logo5" android:duration="50" />
    <item android:drawable="@drawable/android_logo6" android:duration="50" />
 </animation-list>

animation-listにitemを登録します。android:oneshot=”false”なのでリピートONです(true設定で1度のみアニメーションを行います)。また、itemのandroid:durationはミリ秒(ms単位)で指定できます。
animation-listの概要、サンプルコードは続きから。

animation-listの概要

XML属性 説明
android:drawable drawableリソースへの参照(1フレーム分)
android:duration アニメーションの間隔(ms単位の整数値)
android:oneshot 繰り返し設定(true:1回限り、false:リピート)
android:variablePadding trueであれば選択状態に基づいてアニメーションを開始する
android:visible 初期表示状態

サンプルコード

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
     super.onWindowFocusChanged(hasFocus);

     ImageView img = (ImageView)findViewById(R.id.ImageView01);
     // AnimationDrawableのXMLリソースを指定
     img.setBackgroundResource(R.drawable.android_animation);

     // AnimationDrawableを取得
     AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();

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

サンプルコードもとてもシンプルです。XMLリソースをImageViewのBackgroundリソースとして読み込み、AnimationDrawableとして取り出しています(5~10行目)
注意すべきはAnimationDrawable#start()メソッドはonCreateでは有効にならないことです(アニメーションしません)。onWindowFocusChanged等準備完了後に呼び出す必要があります。

関連する記事:

Sponsored Link

2 Comments

技術書新刊 発売中

アンドロイドアカデミアには、CIやテスト、互換検証など実務に生きるノウハウをあつめています

技術書新刊 発売中

Android Next!はAndroid 7.0に対応したはじめての技術書です!


The Web Explorer 2はCSSの中央寄せやWebAudioなど未来を読み解く一冊です


Revised TypeScript in DefinitelylandはTypeScript 2.0(β)に対応した解説書です。インストールから型定義まで幅広くサポートしています


技術書をかこう!はエンジニアらしい執筆環境を構築、HowTo本です