2010-11-17 102 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