我正在使用alpha动画淡化一个imageView。我希望在动画结束后,图片可以保持透明度不变。尝试使用fillAfter和fillEnabled的不同组合,但没有成功。有什么方法可以实现这个效果?
pom
将fillEnabled和fillAfter设置为true总是对我有效。
anim = new AlphaAnimation(0.3f, 1.0f);
anim.setDuration(500);
anim.setFillEnabled(true);
anim.setFillAfter(true);
<view>.startAnimation(anim);
setAnimationListener()
将Animation.AnimationListener
添加到Animation
中。在监听器的onAnimationEnd()
方法中,对ImageView
调用setVisibility(View.INVISIBLE)
。setFillAfter()
很少是正确的答案,因为它并不能按照人们期望的方式工作(例如,在 TranslateAnimation
上使用 setFillAfter()
会导致触摸事件仅在旧位置起作用)。对于完全静态的 UI 上的 alpha 动画,它可能是可行的,但如果 UI 中有任何重大变化,我不会感到丝毫惊讶,看到 alpha 返回其原始值。当然,在 Android 3.0+ 上,您可以直接设置小部件的 alpha 属性。 - CommonsWareTranslateAnimation
的问题。好的,很高兴知道!你提供了这个解决方案的动机,非常棒。 - class stacker