2011-12-09 13 views
3

私はフレームごとのアニメーションを持っていますが、stopメソッドが呼び出されたときに特定のフレームを設定したいと思います。私はたくさんの検索をしましたが、私が何を探しているのか分かりませんでした。androidアニメーションで特定のフレームを設定する方法

この方法はありますか?それは可能ですか?そのフレーム・バイ・フレームを仮定

答えて

1

ImageViewののバックグラウンドで与えAnimationDrawableを意味します。そのような (またはXML経由):

 AnimationDrawable animationDrawable = new AnimationDrawable(); 
     animationDrawable.addFrame(drawableFrame1, 0); 
     animationDrawable.addFrame(drawableFrame2, 1); 
     animationDrawable.addFrame(drawableFrame3, 2); 
     animationDrawable.addFrame(drawableFrame4, 3); 
     iv = new ImageView(this); 
     iv.setBackgroundDrawable(animationDrawable); 

ここでは、コード指定されたフレームを取得し、の背景に設定するにはImageViewの

 onStop() { 
      Drawable drawableFrame2 = ((AnimationDrawable)iv.getBackground()).getFrame(2); 
      iv.setBackgroundDrawable(drawableFrame2); 
      iv.postInvalidate(); 
     } 
+0

アニメーションを再利用したいと思います。私が使用するstopメソッドは、onStop()ではなく、AnimationDrawableクラスのstopメソッドです。 – miroku

4

があなたのAnimationDrawableに、このメソッドを使用します: animationDrawable.selectDrawable(index)

+0

これは私のために何もしないようです。アニメーションに7つのフレームがあり、フレーム0から始まり、myAnimation.selectDrawable(5)を実行すると、まったく変化しません。 – flexd

+0

AnimationDrawable animationDrawable =(AnimationDrawable)frameImage.getBackground(); animationDrawable.stop(); animationDrawable.selectDrawable(0);これは私のコードです – muyiou

関連する問題