web-dev-qa-db-fra.com

Android: Comment arrêter une animation infinie appliquée sur une ImageView?

J'ai une ImageView sur laquelle j'ai appliqué une animation de rotation. Comme je veux que la rotation se poursuive en continu, j'ai donné le repeatCount comme infini dans mon Rotate.xml:

Android:repeatCount="infinite"

Dans onCreate (), je charge l'animation et la démarre.

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

Lorsqu'un bouton est enfoncé, la rotation doit s'arrêter. Par conséquent, dans mon onClick (), j'ai appelé clearAnimation ().

objectImg.startAnimation(myAnim); 

Ma question simple est de savoir si l'arrêt de l'animation est la bonne chose à faire. Je suppose que clearAnimation () correspond à loadAnimation (), mais il n'y a pas de stopAnimation () qui correspond à startAnimation ().

27
kiki

Vous pouvez également appeler anim.cancel(); mais vous devez également appeler anim.reset(); immédiatement après. Ensuite, lorsque vous souhaitez le redémarrer, appelez simplement startAnimation sur la vue.

35
John J Smith

Utilisez clearAnimation() pour arrêter une animation. Il n'y a pas de loadAnimation() sur View.

62
CommonsWare

clearAnimation () sur View est la meilleure solution, il s'arrête et réinitialise l'état de vue précédent.

1