0

私はゲームアプリケーションに取り組んでおり、画像の変更にAnimationDrawableを使用しています。しかし、問題は、アニメーションが終了したときにイメージビューを非表示にしたいことです。これにはどうすればよいですか。

My code is like this...

 mAnimation = new AnimationDrawable();
         mAnimation.addFrame(getResources().getDrawable(R.drawable.d5),50);
         mAnimation.addFrame(getResources().getDrawable(R.drawable.d4),50);
         mAnimation.addFrame(getResources().getDrawable(R.drawable.d3),50);
         mAnimation.addFrame(getResources().getDrawable(R.drawable.d2),50);
         mAnimation.addFrame(getResources().getDrawable(R.drawable.d1),150);
         mAnimation.addFrame(getResources().getDrawable(R.drawable.d2),50);
         mAnimation.addFrame(getResources().getDrawable(R.drawable.d3),50);
         mAnimation.addFrame(getResources().getDrawable(R.drawable.d4),50);
         mAnimation.addFrame(getResources().getDrawable(R.drawable.d5),50);
       mAnimation.addFrame(getResources().getDrawable(R.drawable.new_transparent),50);


         mAnimation.setOneShot(true);
         mDogImage.setImageDrawable(mAnimation);

前もって感謝します。

4

1 に答える 1

0

通知するイベントやリスナーはありません。トリックを適用するだけです。

mAnimation.getNumberOfFrames();フレームの総数を取得するために使用します。各フレームは 50 ミリ秒続くため、アニメーションはmAnimation.getNumberOfFrames() * 50ミリ秒で終了するはずです。

たとえば、9 つのフレームがあり、各フレームの長さが 50 ミリ秒の場合、アニメーションは 450 ミリ秒で終了します。

ImageViewしたがって、アニメーションが開始されてから 450ms 後に非表示になるという結論になります。

于 2012-06-21T04:43:56.247 に答える