Вот фактическая ошибка, связанная с этой проблемой http://code.google.com/p/android-misc-widgets/issues/detail?id=8
В основном это говорит о том, что метод onAnimationEnd не очень хорошо работает, когда AnimationListener присоединен к Animation
Обходной путь - прослушивать события анимации в представлении, к которому вы применяли анимацию.
Например, если изначально вы подключали слушателя анимации к анимации, как это
mAnimation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationEnd(Animation arg0) {
//Functionality here
}
});
, а затем применить к анимации к ImageView, как это
mImageView.startAnimation(mAnimation);
Чтобы обойти эту проблему, теперь вы должны создать собственный ImageView
public class MyImageView extends ImageView {
, а затем переопределите метод onAnimationEnd
класса View и предоставьте там все функции
@Override
protected void onAnimationEnd() {
super.onAnimationEnd();
//Functionality here
}
Это правильный обходной путь для этой проблемы, предоставьте функциональность в переопределенном методе View -> onAnimationEnd, в отличие от метода onAnimationEnd объекта AnimationListener, присоединенного к Animation.
Это работает правильно, и больше нет мерцания в конце анимации. Надеюсь, это поможет.