Ho un ImageView
che utilizzo per mostrare lo stato di avanzamento tramite AnimationDrawable
. Quando voglio mostrare il mio progresso filatrice, faccio questo:Come faccio qualcosa quando termina un'animazione?
animDrawable.start();
ObjectAnimator.ofFloat(view, "alpha", 1.0f).setDuration(300).start();
Quando voglio nascondere la filatrice, faccio questo:
ObjectAnimator.ofFloat(view, "alpha", 0.0f).setDuration(300).start();
animDrawable.stop();
Tuttavia, questo ha l'effetto che l'animazione si ferma subito . Mi piacerebbe che si fermasse solo dopo che lo ObjectAnimator
è completamente sbiadito a 0,0 alfa. C'è un modo per impostare qualcosa sulla falsariga di un callback "AnimationCompleted"?
non potevi dormire il filo per tutta la durata, quindi chiama .stop()? – Rob
Preferisco non dormire il thread dell'interfaccia utente. Potrei eseguire un Runnable post-inoltrato(), ma sembra molto hacky. Sospetto che ci sia un modo corretto per farlo. Inoltre, non sono sicuro di quanto sia accurata l'intera durata. –
Si può avere il runnable controllare l'alpha ad un intervallo soddisfacente –