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

j'ai une ImageView sur laquelle j'ai appliqué une animation de rotation. Puisque je veux que la rotation continue, j'ai donné le repeatCount comme infini dans ma rotation.xml:

android:repeatCount="infinite"

Dans onCreate(), je charge l'animation et le démarrer.

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

lorsqu'un bouton est appuyé, la rotation doit s'arrêter. C'est pourquoi dans mon onClick(), j'ai appelé clearAnimation().

objectImg.startAnimation(myAnim); 

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

27
demandé sur Jason Plank 2010-10-12 14:39:34

3 réponses

vous pouvez aussi appeler anim.cancel(); mais vous devriez aussi appeler anim.reset(); immédiatement après. Ensuite, si vous voulez recommencer, appelez startAnimation sur la vue.

29
répondu John J Smith 2015-09-14 08:14:00

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

58
répondu CommonsWare 2010-10-12 11:49:32

clearAnimation() sur l'Affichage est la meilleure solution , il s'arrête et réinitialisation de l'état antérieur de vue.

0
répondu Sandipkumar Savani 2018-05-22 09:47:06