How do I do something when an animation finishes?
android, android-3.1-honeycomb, animation
Solution
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();
Problem
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?