1

フレームアニメーションを定義するための次のXMLファイルがあります。

<animation-list
xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/youme_blink_frame_0000" android:duration="40" />
<item android:drawable="@drawable/youme_blink_frame_0001" android:duration="40" />
<item android:drawable="@drawable/youme_blink_frame_0002" android:duration="40" />
<item android:drawable="@drawable/youme_blink_frame_0003" android:duration="40" />
<item android:drawable="@drawable/youme_blink_frame_0004" android:duration="40" />
<item android:drawable="@drawable/youme_blink_frame_0005" android:duration="40" />
<item android:drawable="@drawable/youme_blink_frame_0006" android:duration="40" />
<item android:drawable="@drawable/youme_blink_frame_0007" android:duration="40" />
<item android:drawable="@drawable/youme_blink_frame_0008" android:duration="40" />
<item android:drawable="@drawable/youme_blink_frame_0009" android:duration="40" />
<item android:drawable="@drawable/youme_blink_frame_0010" android:duration="40" />
</animation-list>

次に、次のコードがあります。

    Animation mAnim = AnimationUtils.loadAnimation(this, R.anim.blink);
    mAnim.setAnimationListener(this);

    ImageView img = (ImageView)findViewById(R.id.animationImage);
    img.clearAnimation();
    img.setAnimation(mAnim);
    img.startAnimation(mAnim);

このコードは、「アニメーションファイルが見つかりません」というエラーで例外を生成します。フレームアニメーションがアニメーションと見なされないのですか、それとも私が何か間違ったことをしているのですか?

ありがとう、サイモン

4

1 に答える 1

3

フレームごとのアニメーションは、Animation ではなく AnimationDrawable です。あなたがしているのは、それをアニメーションとして使用することであり、それが例外の原因であり、その名前のアニメーションファイルはありません。ドローアブルファイルがあります。AnimationDrawable を使用するには、このコード スニペットを使用します

// Load the ImageView that will host the animation and
// set its background to our AnimationDrawable XML resource.
ImageView img = (ImageView)findViewById(R.id.spinning_wheel_image);
img.setBackgroundResource(R.drawable.spin_animation);

// Get the background, which has been compiled to an AnimationDrawable object.
AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();

// Start the animation (looped playback by default).
frameAnimation.start();

AnimationDrawable の詳細については、ドキュメントを参照してください。

于 2013-02-09T01:57:49.620 に答える