Android动画闪烁

use*_*400 1 android

我有一个ImageView,我使用TranslateAnimation动画.在动画结束时,我想切换它显示的drawable.它有效但在显示图像之前它会闪烁.我最初使用的是AnimationListener,然后我按照我发现的如何通过创建扩展ImageView并覆盖OnAnimationEnd的自定义视图来解决这个问题的示例无效.

在我的活动中:

TranslateAnimation = new TranslateAnimation(0, 150, 0, 150);
translateAnimation.setDuration(ANIMATION_DURATION);

    btn.setNextImage(buttons.get(2));
    btn.startAnimation(3000);
Run Code Online (Sandbox Code Playgroud)

在我的自定义视图中,我有以下内容:

protected void onAnimationEnd() {   
   super.onAnimationEnd();

   //this.clearAnimation();

   if(_nextImage != null)
      this.setImageDrawable(_nextImage);
}

private Drawable _nextImage;

public void setNextImage(Drawable d)
{
    _nextImage = d;
}
Run Code Online (Sandbox Code Playgroud)

Jav*_*tor 8

将其称为OnAnimationEnd中的第一个语句

theViewOnToWhichAnimationIsApplied.clearAnimation();

这应该解决它,因为它解决了我的.我也面对同样的事情