Frameアニメーション

Android Tips

パラパラ漫画のようなアニメーションは、画像ファイルでanimation-listを作り、AnimationDrawableクラスを使って実装します。
リソースをsetした時点で1枚目の画像が表示されるので、たとえば何かのトリガーで突然表示させたい場合などは、1枚目の画像を透明にするか、サンプルコードのようにトリガーが引かれてからsetBackgroundResource()するといいです。
なお、AnimationDrawableのstart()は、アニメーションが完了する前に復帰してきます。

アニメーション画像ファイル
res/drawable/anim1.png
res/drawable/anim2.png
res/drawable/anim3.png
res/drawable/anim4.png
res/drawable/anim5.png

import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.widget.ImageView;

public class MyClass extends Activity{

  public void startAnimation(){
    ImageView animView = (ImageView)findViewById(R.id.animview);
    animView.setBackgroundResource(R.anim.myAnim);
    AnimationDrawable anim = (AnimationDrawable)animView.getBackground();
    anim.setOneShot(true); // 1回で終わる
    if(anim.isRunning()) anim.stop(); // アニメーション中なら止める
    anim.start();
  }
}

res/anim/myAnim.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true">
  <item android:duration="200" android:drawable="@drawable/anim1" />
  <item android:duration="150" android:drawable="@drawable/anim2" />
  <item android:duration="200" android:drawable="@drawable/anim3" />
  <item android:duration="200" android:drawable="@drawable/anim4" />
  <item android:duration="120" android:drawable="@drawable/anim5" />
</animation-list>

参考: Tweenアニメーション
参考: Tweenアニメーション for XML

コメント