Tengo un ImageView
que uso para mostrar el progreso a través de AnimationDrawable
. Cuando quiero mostrar mi progreso spinner, hago esto:¿Cómo hago algo cuando termina una animación?
animDrawable.start();
ObjectAnimator.ofFloat(view, "alpha", 1.0f).setDuration(300).start();
cuando quiero ocultar el spinner, hago esto:
ObjectAnimator.ofFloat(view, "alpha", 0.0f).setDuration(300).start();
animDrawable.stop();
Sin embargo, esto tiene el efecto de que la animación se detiene inmediatamente . Me gustaría que se detenga solo después de que el ObjectAnimator
se haya desvanecido por completo a 0.0 alfa. ¿Hay alguna manera de configurar algo similar a una devolución de llamada "AnimationCompleted"?
No se pudo dormir que el hilo de la duración, luego llama a .stop()? – Rob
Preferiría no dormir el hilo de UI. Podría hacer un PostDelayed() Runnable, pero eso parece muy hacky. Sospecho que hay una forma correcta de hacer esto. Además, no estoy seguro de cuán precisa es la duración total. –
Puede hacer que el ejecutable verifique el alfa en un intervalo satisfactorio –