Je viens de terminer une petite application permettant de tester les différents Interpolator
s fournis avec Android. Certains doivent se demander ce qu'est un Interpolator
. L'interface Interpolator
définit en réalité une fonction définie sur [0;1] qui donne une valeur en général comprise, elle aussi entre 0 et 1 (mais cela n'est pas obligatoire). Imaginons que nous souhaitions créer une animation qui déplace simplement un objet d'une position (x1,y1) à une position (x2,y2). Le principe même d'une animation consiste à placer l'objet sur la droite séparant (x1,y1) et (x2,y2). C'est exactement ici que l'Interpolator
agit : il définit la position de l'objet sur cette droite en fonction du temps.
Le squelette donné ci-dessous est celui de l'interface Interpolator
. On y retrouve une seule est unique méthode nommée getInterpolation(float)
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
Lorsqu'une animation est en cours, le framework fait des appels successifs à la méthode getInterpolation(float input)
afin de déterminer la position de l'objet sur la droite. La valeur input
correspond en réalité à l'avancement de l'animation (le temps) : 0 correspond au début de l'animation alors que 1 définit la fin de l'animation.
L'application “Ball Animation” que je viens de créer affiche simplement une boule qui se déplace à la position cliquée par l'utilisateur. Il est également possible de changer l'Interpolator
et le temps de l'animation utilisés pour animer la boule. Les captures d'écran ci-dessous donnent un aperçu rapide de ce à quoi ressemble l'application.
Pour permettre à chacun d'accéder à mes applications, j'ai créé un projet sur Google Code. Je mettrais sur ce projet l'ensemble des applications que je ferais. La page d'accueil de ce projet est accessible à l'adresse suivante : http://code.google.com/p/cyril-android-apps/
Pour les intéressés, il est également possible d'accéder aux codes source des applications à l'aide du gestionnaire de version Subversion. Les sources de “Ball Animation” sont par exemple accessibles à l'adresse suivante :
http://cyril-android-apps.googlecode.com/svn/trunk/BallAnimation