2 votes

Les animations des boutons Android se synchronisent avec le temps

J'ai besoin d'un conseil pour créer des animations que je veux ajouter à mes boutons. En fait, j'ai le code de l'animation, ce dont j'ai besoin, c'est de savoir comment régler correctement le timing de chaque animation. Voici ce que j'ai déjà essayé :

    fest.setVisibility(View.INVISIBLE);
    handler.postDelayed(new Runnable() {

        @Override
        public void run() {
            fest.setVisibility(View.VISIBLE);
            fest.startAnimation(anim);
            handler.removeCallbacks(this);
        }
    }, 500);

C'est ce que j'ai fait pour les 7 boutons. D'abord, j'ai mis la visibilité à invisible parce que je veux obtenir l'effet qu'ils apparaissent après 5 milisecondes après onCreate et pour chaque bouton suivant, j'augmente le délai de 5 milisecondes pour que chacun d'eux apparaisse après le précédent. Mais le problème dans ce code est que lorsque le gestionnaire suivant démarre pour le deuxième bouton par exemple, le bouton précédent devient invisible pendant une partie des secondes et s'affiche à nouveau (j'espère que quelqu'un comprend ce que je veux dire).

Avez-vous des suggestions pour une meilleure mise en œuvre de quelque chose comme ça ?

Merci d'avance !

2voto

Android-Developer Points 6542

Voici donc la chose qui a réglé ce problème. Je l'ai utilisé pour chaque bouton et ça marche comme je le veux :

    final Handler festHandler = new Handler();
    festHandler.postDelayed(new Runnable() {

        @Override
        public void run() {
             Animation anim = AnimationUtils.loadAnimation(Menu.this, R.anim.fadein);
             fest.setVisibility(View.VISIBLE);
             fest.startAnimation(anim);
             festHandler.removeCallbacks(this);
        }
    }, 400);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X