animation.start() or animation.startNow() does not start the animation immediately
-
25-09-2019 - |
Question
I have a strange issue - from time to time the animation that should fade out my control (ImageButton) does not kick in immediately. I am using the fadeout animation to hide it and then in myListener on its end (onAnimationEnd) I put new resource as the image on the button.
Somewhere in my app code:
Animation a = AnimationUtils.loadAnimation(this,R.anim.fadeout);
a.setAnimationListener(new myListener(location));
buttons[location].setAnimation(a);
a.startNow(); // regardless if its start() or startnNow()
// it will work in most of the cases but not 100% reliable
// I actually can see in debug Log when its late, happens after few more clicks
Then in myListener.onAnimationEnd(Animation a):
buttons[location].setImageResource(R.drawable.standard_button);
Seems there is a rule that the every 4th or 5th animation does not start ...
Thanks for help!
Solution
adding
buttons[location].invalidate();
after
a.startNow();
has fixed my issue.
OTHER TIPS
You can also use
buttons[location].startAnimation(a);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow