Outils pour utilisateurs

Outils du site


lang:android:animation

Ceci est une ancienne révision du document !


Généralités

Fonctionnalités

Interpolation

Liste des interpolations avec leur courbe : Android Animation Interpolators Archive du 2014 le 29/05/2023

Il existe :

  • AccelerateDecelerateInterpolator,
  • AccelerateInterpolator,
  • AnticipateInterpolator,
  • AnticipateOvershootInterpolator,
  • BounceInterpolator,
  • CycleInterpolator,
  • DecelerateInterpolator,
  • LinearInterpolator,
  • OvershootInterpolator,
  • PathInterpolator.

Comparaison Animation / Animator

Pour faire des animations, il est possible d'utiliser des classes Animation et des Animator.

Différence entre les deux, en mettant en avant Animator.

+ Plus récent.

+ Composant graphique utilisable pendant l'animation.

+ Permet de synchroniser plusieurs animations sur plusieurs composants graphiques.

+ L'implémentation des listener se fait sur la base d'une classe abstraite et non d'une interface ce qui évite de devoir définir tous les événements.

+ Permet d'enchainer des animations complexes dans la ressource XML.

- Nécessite plus de ressource.

- Ne permet pas de déplacer d'un pourcentage de la taille du composant depuis la ressource XML. Nécessite Java.

- Nécessite plus de ligne de code.

- Ne peut pas être créé depuis du code Java (sauf animation très simple). Nécessite d'avoir une ressource XML.

- Animation difficilement personnalisable en Java.

Globalement, Animator est mieux.

What is the difference between an Animator and an Animation? Archive du 29/01/2025 le 29/05/2023

Animation

Ressources

Les ressources XML se mettent dans le dossier res/anim.

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
  android:duration="500"
  android:interpolator="@android:anim/accelerate_interpolator"
  >
  <alpha
    android:fromAlpha="0"
    android:toAlpha="1" />
  <translate
    android:fromYDelta="+50%"
    android:toYDelta="0%" />
</set>

Exemple

Animation animation = AnimationUtils.loadAnimation(context, R.anim.animation);
animation.setAnimationListener(new Animation.AnimationListener() {
  @Override
  public void onAnimationStart(Animation animation) {}
 
  @Override
  public void onAnimationEnd(Animation animation) {}
 
  @Override
  public void onAnimationRepeat(Animation animation) {}
});
 
Button button = myView.findViewById(R.id.button);
button.startAnimation(buttonIn);
lang/android/animation.1685348316.txt.gz · Dernière modification : 2023/05/29 10:18 de root