2010-08-19 4 views
0

J'ai donc utilisé un ScaleAnimation pour faire rétrécir une barre de temps dans une partie. Quand le niveau actuel était fini, je voulais que la barre temporelle rétrécisse rapidement vers le bas. Donc ce que j'ai fait, c'est que si 30% du temps s'était écoulé, j'ai supposé que 30% de la barre temporelle avait disparu. Donc j'ai juste commencé une nouvelle ScaleAnimation qui a commencé à 70% de la taille originale de la barre de temps, en supposant que cela ressemblerait à une simple animation lisse qui accélèrerait quand le niveau serait fini. Malheureusement, l'échelonnement ne se déplace pas uniformément. Il se déplace plus lentement au début et à la fin, et plus rapidement au milieu. J'ai maintenant trois choix: Soit je trouve comment faire évoluer ScaleAnimation à une vitesse égale, soit je détermine la vitesse de déplacement, donc je peux déterminer exactement la taille d'un certain ScaleAnimation. pour cent de l'animation a joué. Ou, je trouve un moyen plus intelligent de faire cette barre de temps. Suggestions? :)Faire ScaleAnimation se déplacer uniformément, ou comprendre comment il se déplace

Cheers,

Répondre

2

L'androïde méthode utilise pour créer l'animation interpolée est décidé par lequel vous utilisez interpolateur. De l'android website:

Vous pouvez déterminer comment une transformation est appliquée au fil du temps en lui attribuant un interpolateur . Android inclut plusieurs sous-classes Interpolator qui spécifient différentes courbes de vitesse: par exemple, AccelerateInterpolator indique une transformation pour démarrer lente et vitesse vers le haut. Chacun a une valeur d'attribut qui peut être appliquée dans le fichier XML.

Les choix sont (from android website again):

AccelerateDecelerateInterpolator, AccelerateInterpolator, AnticipateInterpolator, AnticipateOvershootInterpolator, BounceInterpolator, CycleInterpolator, DecelerateInterpolator, LinearInterpolator, OvershootInterpolator

donc de ce que vous vous décrivez probablement envie de choisir le LinearInterpolator qui ressemblerait à quelque chose comme ce qui suit:

<scale 
      android:interpolator="@android:anim/linear_interpolator" 
      android:fromXScale="1.0" 
      android:toXScale="1.4" 
      android:fromYScale="1.0" 
      android:toYScale="0.6" 
      android:pivotX="50%" 
      android:pivotY="50%" 
      android:fillAfter="false" 
      android:duration="700" /> 

expérience avec différents interpolateurs pour voir ce qui vous semble le mieux adapté à vos besoins.

Questions connexes