158 votes

Fade In Fade Out Android Animation en Java

Je veux avoir les 2 secondes d'animation d'une ImageView qui passe 1000ms en fondu et puis 1000ms fondu.

Voici ce que j'ai jusqu'à présent dans ma ImageView constructeur:

    Animation fadeIn = new AlphaAnimation(0, 1);
    fadeIn.setDuration(1000);

    Animation fadeOut = new AlphaAnimation(1, 0);
    fadeOut.setStartOffset(1000);
    fadeOut.setDuration(1000);

    AnimationSet animation = new AnimationSet(true);
    animation.addAnimation(fadeIn);
    animation.addAnimation(fadeOut);
    this.setAnimation(animation);

Quand je lance cette animation, rien ne s'affiche. Cependant, lorsque je supprime l'un de l'alpha animations, le comportement fonctionne comme prévu.

Choses que j'ai déjà essayé:

  • Toutes les combinaisons imaginables de l' setFillBefore, setFillAfter, et setFillEnabled.
  • L'ajout d'un LinearInterpolator de la AnimationSet.

279voto

plowman Points 5106

Ai réalisé mon propre problème. La solution a fini par être basé à interpolateurs.

148voto

Konrad Winkowski Points 588

Je sais que cela déjà a répondu, mais...

Un moyen rapide et facile à faire rapidement un fade in et out avec une auto repeat. Profitez de

27voto

TWilly Points 744

Voici ma solution à l’aide de AnimatorSet qui semble être un peu plus fiables que les AnimationSet.

10voto

Richard Points 382

AnimationSets ne semblent pas fonctionner correctement à tous. En fin de compte, j’ai abandonné et utilisé postDelayed() de la classe de gestionnaire aux animations de la séquence.

4voto

Omid Aminiva Points 166

vous pouvez également utiliser animationListener, quelque chose comme ceci

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