I have an ImageView that I use to show progress via an AnimationDrawable.  When I want to show my progress spinner, I do this:
animDrawable.start(); ObjectAnimator.ofFloat(view, "alpha", 1.0f).setDuration(300).start(); When I want to hide the spinner, I do this:
ObjectAnimator.ofFloat(view, "alpha", 0.0f).setDuration(300).start(); animDrawable.stop(); However, this has the effect that the animation stops immediately.  I would like it to stop only after the ObjectAnimator has completely faded to 0.0 alpha.  Is there a way I can setup something along the lines of an "AnimationCompleted" callback?
The more modern way of doing this is to use the ViewPropertyAnimator:
view.animate()     .alpha(0f)     .withEndAction(new Runnable() {       @Override       public void run() {         // Do something.       }     })     .start(); Or, if you're using RetroLambda:
view.animate()     .alpha(0f)     .withEndAction(() -> {       // Do something.     })     .start(); If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With