2010-11-17 120 views

回答

8

通过setAnimationListener()添加Animation.AnimationListenerAnimation。在收听者的onAnimationEnd()中,拨打setVisibility(View.INVISIBLE),ImageView

+0

不是最好的解决方案。请看chris的答案。 – 2013-02-22 07:37:08

+1

@ClassStacker:欢迎您的意见。 ''setFillAfter()'很少是正确的答案,因为它不会像预期的那样工作(例如,'TranslateAnimation'上的'setFillAfter()'导致触摸事件只能在* old *位置工作)。对于完全静态UI上的alpha动画,它可能是可生存的,但如果在该UI中有任何更改,我会毫不惊讶地看到alpha返回到其原始值。在Android 3.0+上,当然,您可以设置小部件的alpha属性。 – CommonsWare 2013-02-22 12:47:29

+0

我明白了;我不知道'TranslateAnimation'问题。很高兴知道!伟大的你为你的解决方案提供了这个动机。 – 2013-02-22 13:03:02

16

将fillEnabled和fillAfter设置为true总是适用于我。

anim = new AlphaAnimation(0.3f, 1.0f); 
anim.setDuration(500); 
anim.setFillEnabled(true); 
anim.setFillAfter(true); 
<view>.startAnimation(anim); 
+0

我其次。也可以单独使用XML来实现。 – 2013-02-22 07:34:58

+0

不错!谢了,兄弟。 :) – 2015-08-06 06:16:24