Boucle AnimatorSet
J'ai fait un AnimatorSet de trois ObjectAnimator qui je veux le répéter, sequentally.
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="sequentially">
<objectAnimator
android:propertyName="rotation"
android:duration="300"
android:valueFrom="0"
android:valueTo="5"
android:valueType="floatType"/>
<objectAnimator
android:propertyName="rotation"
android:duration="600"
android:valueFrom="5"
android:valueTo="-5"
android:valueType="floatType"/>
<objectAnimator
android:propertyName="rotation"
android:duration="300"
android:valueFrom="-5"
android:valueTo="0"
android:valueType="floatType"/>
</set>
Mais si j'ai mis le CycleInterpolator à AnimatorSet parce que les Animateurs vont commencer sequentally
public void setInterpolator (TimeInterpolator interpolateur)
Ajout de l'API de niveau 11Définit la TimeInterpolator pour tous les enfants des animations de ce AnimatorSet.
J'ai donc essayé en boucle par le redémarrage de AnimatorSet par la fixation d'un auditeur, mais il s'arrête quelques millisecondes et l'effet de la reprise des AnimatorSet est perceptible.
a.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation)
{
animation.start();
}
});
Que puis-je faire pour faire une boucle (à l'exception de la construction d'une énorme liste de ObjectAnimators ou de l'écriture de mon propre animation à l'aide de Fil et Gestionnaire)?
OriginalL'auteur Yaroslav Mytkalyk | 2013-07-05
Vous devez vous connecter pour publier un commentaire.
Dans le besoin désespéré de cette fonction trop, il s'avère que certains on déjà trouvé la solution.
http://www.jefflinwood.com/2013/04/repeating-android-animations-with-animatorset/
Tout le crédit appartient à l'auteur original.
juste polis l'un de mes projet avec cette méthode(sur Kindle Fire HDX, fade-in, fade-out, puis la boucle est à nouveau), pas de retard observé pour ma part.
Difficile à croire animationset ne pouvez pas être en boucle!!!
OriginalL'auteur Jerry Tian
Une solution de contournement pour ce cas particulier, est la création d'un AnimatorSet avec le premier élément pour faire pivoter la moitié et la seconde pour garder la rotation
OriginalL'auteur Yaroslav Mytkalyk
Vous devez définir un mode de répétition pour le AnimationSet, voir:
http://developer.android.com/reference/android/view/animation/Animation.html#attr_android:repeatMode
Vous avez raison, je n'ai pas d'avis. De sorte que vous pouvez créer par programmation AnimatorSet qui contient de nombreuses fois la même instance de votre XML défini AnimatorSet, ou comme pskink suggère de faire un personnalisé boucle de l'interpolateur. Je voudrais utiliser le module au lieu de sinus
J'ai essayé <> dans <> mais il s'applique à l'Interpolateur pour tous les enfants. Et de nouvelles AnimatorSet avec l'Interpolateur + gonflé AnimatorSet contente de ne pas les répéter.
En voiture, vous voulez que votre objet pivoter à droite puis à GAUCHE et enfin la CW, droit? afin de ne pas compliquer ce et d'utiliser des interpolateur
ses pas la boucle de l'interpolateur, c'est juste de l'interpolateur qui fait que l'OP voulait atteindre à l'aide de 3 objet animateurs et il le fait en douceur, contraire à l'OP solution
OriginalL'auteur ognian
juste lui demander de répéter:
=)
nombre peut également être un nombre défini.
oui, c'est fait: developer.android.com/reference/android/animation/...
ValueAnimator a, mais je suis en utilisant un AnimatorSet (qui s'étend de l'Animateur, pas ValueAnimator).
repeatCount dans <> de res/animateur/ xmls ne fonctionne pas. Juste essayé.
Mais vous avez m'a donné une Idée pour une solution de contournement!
OriginalL'auteur Budius