Sto usando Android KitKat e questo sembra non funzionare come previsto. Ho un AnimationSet che dovrebbe iniziare dopo un certo ritardo, ma voglio fare qualche azione quando l'animazione inizia effettivamente (dopo il ritardo). Sembra che AnimatorSet invochi suAnimationStarted sugli ascoltatori subito dopo aver chiamato start().AnimatorSet con setStartDelay chiama suAnimationStart
codice di esempio:
AnimatorSet set = new AnimatorSet();
set.playTogether(
ObjectAnimator.ofFloat(obj, "x", 10),
ObjectAnimator.ofFloat(obj, "y", 10));
set.setStartDelay(5000);
set.setDuration(1000)
set.addListener(new AnimatorListenerAdapter()
{
@Override
public void onAnimationStart(Animator animation)
{
// do sth
}
});
set.start();
In questo caso l'ascoltatore viene richiamato immediatamente invece di ritardo. Per ovviare a questo problema, ho verificato se aggiungere il listener agli animatori passati in playTogether restituisce il risultato previsto e in effetti lo fa. è un insetto?
non può la risposta, ma per ottenere ciò che si desidera è possibile utilizzare TimerTask o Thread.sleep per il ritardo. Handler è anche un altro approccio – Nepster