1

フレームアニメーションを追加したanimation.xmlファイルを作成しましたが、機能していません。アクティビティクラスで次のように5thisを呼び出しました。

animation = (ImageView)findViewById(R.id.imageAnimation);
        animation.setBackgroundResource(R.drawable.animation);      // the frame-by-frame animation defined as a xml file within the drawable folder
        AnimationDrawable frameAnimation = 
                (AnimationDrawable) animation.getBackground();
            frameAnimation.start();

その中で何が問題なのか誰か教えてもらえますか

Animation.xmalファイル

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
    android:oneshot="false">

    <item android:drawable="@drawable/anatomy_5" android:duration="50" />
    <item android:drawable="@drawable/anatomy_6" android:duration="50" />
    <item android:drawable="@drawable/anatomy_7" android:duration="50" />
    <item android:drawable="@drawable/anatomy_8" android:duration="50" />
    <item android:drawable="@drawable/anatomy_9" android:duration="50" />
    <item android:drawable="@drawable/anatomy_10" android:duration="50" />
    <item android:drawable="@drawable/anatomy_11" android:duration="50" />
    <item android:drawable="@drawable/anatomy_12" android:duration="50" />
    <item android:drawable="@drawable/anatomy_13" android:duration="50" />
    <item android:drawable="@drawable/anatomy_14" android:duration="50" />
    <item android:drawable="@drawable/anatomy_15" android:duration="50" />
    <item android:drawable="@drawable/anatomy_16" android:duration="50" />
    <item android:drawable="@drawable/anatomy_17" android:duration="50" />
    <item android:drawable="@drawable/anatomy_18" android:duration="50" />
    <item android:drawable="@drawable/anatomy_19" android:duration="50" />
    <item android:drawable="@drawable/anatomy_20" android:duration="50" />
    <item android:drawable="@drawable/anatomy_21" android:duration="50" />
    <item android:drawable="@drawable/anatomy_22" android:duration="50" />
    <item android:drawable="@drawable/anatomy_23" android:duration="50" />
    <item android:drawable="@drawable/anatomy_24" android:duration="50" />
    <item android:drawable="@drawable/anatomy_25" android:duration="50" />
    <item android:drawable="@drawable/anatomy_26" android:duration="50" />
    <item android:drawable="@drawable/anatomy_27" android:duration="50" />
    <item android:drawable="@drawable/anatomy_28" android:duration="50" />
    <item android:drawable="@drawable/anatomy_29" android:duration="50" />
    <item android:drawable="@drawable/anatomy_30" android:duration="50" />
    <item android:drawable="@drawable/anatomy_31" android:duration="50" />
    <item android:drawable="@drawable/anatomy_32" android:duration="50" />
    <item android:drawable="@drawable/anatomy_33" android:duration="50" />
    <item android:drawable="@drawable/anatomy_34" android:duration="50" />
    <item android:drawable="@drawable/anatomy_35" android:duration="50" />
    <item android:drawable="@drawable/anatomy_36" android:duration="50" />
    <item android:drawable="@drawable/anatomy_37" android:duration="50" />
    <item android:drawable="@drawable/anatomy_38" android:duration="50" />
    <item android:drawable="@drawable/anatomy_39" android:duration="50" />
    <item android:drawable="@drawable/anatomy_40" android:duration="50" />
    <item android:drawable="@drawable/anatomy_41" android:duration="50" />
    <item android:drawable="@drawable/anatomy_42" android:duration="50" />
    <item android:drawable="@drawable/anatomy_43" android:duration="50" />
    <item android:drawable="@drawable/anatomy_44" android:duration="50" />
    <item android:drawable="@drawable/anatomy_45" android:duration="50" />
    <item android:drawable="@drawable/anatomy_46" android:duration="50" />
    <item android:drawable="@drawable/anatomy_47" android:duration="50" />
    <item android:drawable="@drawable/anatomy_48" android:duration="50" />
    <item android:drawable="@drawable/anatomy_49" android:duration="50" />

</animation-list>
4

3 に答える 3

3

ドローアブル アニメーションのサンプルページの下部にあるように:

AnimationDrawable で呼び出された start() メソッドは、Activity の onCreate() メソッド中に呼び出すことができないことに注意することが重要です。これは、AnimationDrawable がまだウィンドウに完全にアタッチされていないためです。操作を必要とせずにアニメーションをすぐに再生したい場合は、Activity の onWindowFocusChanged()メソッドから呼び出すことができます。このメソッドは、Android がウィンドウにフォーカスを移したときに呼び出されます。

それが役立つことを願っています..;)乾杯

于 2012-05-30T07:15:44.873 に答える
1

これを試して

animation.xmlファイルをanimフォルダに入れる

シンプルなアニメーション

Animation rAnim = AnimationUtils.loadAnimation(your_context, R.anim.animation);
animation.startAnimation(rAnim);

あなたはどこanimationですかimageview

アップデート

ドローアブル アニメーション

    AnimationDrawable rocketAnimation;

    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);

      ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
      rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
      rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
       final Thread thread = new Thread(new Runnable() 
    {
    @Override
    public void run() 
    { wait(1000);      
     activity.runOnUiThread(new Runnable() {@Override public void run()
    {
     rocketAnimation.start();
    }});
     }
});
thread.start();

    }

    public boolean onTouchEvent(MotionEvent event) {
      if (event.getAction() == MotionEvent.ACTION_DOWN) {
        rocketAnimation.start();
        return true;
      }
      return super.onTouchEvent(event);
    }
于 2012-05-30T07:13:44.227 に答える