Je souhaite mettre un certain délai pour démarrer une animation. Ainsi, lorsqu'une animation ne va pas se répéter, nous pouvons facilement utiliser la propriété startOffset
. La chose est que j'ai une animation qui va se répéter indéfiniment. Mais je dois le démarrer avec un retard, donc quand j'utilise startOffset
, l'animation répète toujours avec ce délai qui n'est pas ce que je veux. Aussi, je ne veux pas utiliser Handler
pour créer un délai.Définir le décalage de début pour une animation répétitive uniquement pour le démarrage
EDIT:
Je n'ai jamais utilisé ObjectAnimator. Mon code est comme ci-dessous mais il n'anime pas. Quelle est mon erreur?
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(view, "translationX", 1000, -1000);
objectAnimator.setDuration(ANIMATION_DURATION);
objectAnimator.setRepeatMode(ValueAnimator.RESTART);
objectAnimator.setRepeatCount(ValueAnimator.INFINITE);
objectAnimator.setStartDelay((5 - i) * INTERVAL);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.play(objectAnimator);
animatorSet.start();
'De plus, je ne veux pas utiliser Handler pour créer un delay' - pourquoi? – azizbekian
Parce que l'animation sera affectée à de nombreuses vues et n'importe où au milieu de tout ce que je dois supprimer toutes les animations. Donc, si j'utilise le gestionnaire, je dois supprimer les rappels pour chaque vue. –
puis utilisez 'AnimatorSet' avec un offset jouant normalement l'animation répétitive - je pense que cela devrait fonctionner – pskink