ANDROID – comment vérifier si l'animation est en cours d'exécution avant de commencer une nouvelle animation

Ok, alors j'ai une activité où j'ai plusieurs images et lorsque vous cliquez dessus, l'ImageView disparaît et disparaît. Ce que j'essaie de comprendre, c'est comment je peux cliquer sur un ImageView et démarrer l'animation et quand je clique Un 2ème et l'animation est toujours en cours d'exécution, elle ignorera la seconde. Je pense que je dois faire quelque chose avec l'animationListener, mais je ne peux pas comprendre comment l'utiliser pour vérifier si l'animation est en cours d'exécution ou pas avant de lancer une nouvelle animation. Je pourrais avoir juré J'ai vu un exemple qui a fait cela, mais j'ai été à la recherche de jours et je ne peux plus le trouver, j'espère que quelqu'un pourrait aider ici ….. ci-dessous est le code de mon animation:

// Create Animation protected void fadeAnimation() { tempImg.startAnimation(fadeout); //Allow animation to finish mHandler.postDelayed(new Runnable() { public void run() { tempImg.startAnimation(fadein); } }, 1000); } 

  • Android Combien d'espace est gratuit sur la carte SD?
  • Verrouille le périphérique Android par programme
  • Quel système de fichiers utilise Android?
  • Génération non signée, libération d'apk avec Android Studio
  • Comment implétez-vous un FileObserver à partir d'un service Android
  • Qu'est-ce qu'une classe Full Database Android intégrale pour une base de données SQLite existante?
  • Lecteur vidéo Android utilisant NDK, OpenGL ES et FFmpeg
  • Android Afficher align bottom (programmatically) sans XML
  • Comment mettre une vue sur l'autre dans la mise en page relative par programme dans Android?
  • Impossible de désactiver APK accidentellement téléchargé sur Prod
  • Largeur en pourcentage dans un rapportLayout
  • La conversion au format Dalvik a échoué avec l'erreur 1 depuis Facebook SDK
  • 2 Solutions collect form web for “ANDROID – comment vérifier si l'animation est en cours d'exécution avant de commencer une nouvelle animation”

    Je suppose que le fadeout et la fadein sont des objets d' Animation .

    Utilisez fadeout.hasEnded() pour vérifier si le premier a terminé avant de commencer votre deuxième.

    Pour plus de détails sur la classe Animation , voir ici: http://developer.android.com/reference/android/view/animation/Animation.html

    Au lieu d'avoir à faire une boucle éventuellement dans un autre thread en vérifiant si une animation s'est terminée, vous pouvez utiliser un auditeur d'animation en faisant quelque chose comme ceci:

     // Create Animation protected void fadeAnimation() { fadeout.setAnimationListener(new Animation.AnimationListener(){ @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { tempImg.startAnimation(fadein); } @Override public void onAnimationRepeat(Animation animation) { } }; tempImg.startAnimation(fadeout); } 

    Avec ce type de solution, vous ne devriez pas vérifier activement si une animation a fini et l'heure avec la durée de l'animation précédente.

    OnAnimationEnd (Animation) est déclenché juste après la fin de l'animation. Cela résout également le problème des utilisateurs avec des options de développeur "on" et la vitesse d'animation réglée sur "off".

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.