web-dev-qa-db-ja.com

Android:ImageViewに適用された無限アニメーションを停止するにはどうすればよいですか?

回転アニメーションを適用したImageViewがあります。ローテーションを継続的に行いたいので、rotate.xmlでrepeatCountを無限に指定しました。

Android:repeatCount="infinite"

OnCreate()で、アニメーションをロードして開始します。

Animation myAnim    = AnimationUtils.loadAnimation(this, R.anim.rotate);
objectImg.startAnimation(myAnim); 

ボタンを押すと、回転が停止する必要があります。したがって、私のonClick()では、clearAnimation()を呼び出しました。

objectImg.startAnimation(myAnim); 

私の簡単な質問は、アニメーションを停止することが正しいことかどうかです。 clearAnimation()はloadAnimation()に対応すると思いますが、startAnimation()に対応するstopAnimation()はありません。

27
kiki

anim.cancel();を呼び出すこともできますが、その直後にanim.reset();を呼び出す必要もあります。その後、再度開始する場合は、ビューでstartAnimationを呼び出します。

35
John J Smith

clearAnimation()を使用してアニメーションを停止します。 ViewにはloadAnimation()はありません。

62
CommonsWare

ビューのclearAnimation()が最適なソリューションです。停止して、以前のビューの状態をリセットします。

1