2010-11-17 4 views

risposta

8

Aggiungi un Animation.AnimationListener al Animation via setAnimationListener(). In onAnimationEnd() dell'ascoltatore, chiamare setVisibility(View.INVISIBLE) su ImageView.

+0

Non è la soluzione migliore. Guarda la risposta di chris. –

+1

@ClassStacker: siete i benvenuti per la vostra opinione. 'setFillAfter()' è raramente la risposta giusta, perché non funziona come previsto (ad es., setFillAfter() 'su un valore di TranslateAnimation fa sì che gli eventi di tocco funzionino solo nella * vecchia * posizione). Per un'animazione alfa su un'interfaccia utente completamente statica, potrebbe sopravvivere, ma se qualcosa cambia molto in quell'interfaccia utente, non mi sorprenderebbe minimamente vedere il ritorno alfa al suo valore originale. Su Android 3.0+, puoi semplicemente impostare la proprietà alpha del widget, ovviamente. – CommonsWare

+0

Vedo; Non ero a conoscenza del problema 'TranslateAnimation'. Buono a konw! Ottimo hai fornito questa motivazione per la tua soluzione. –

16

l'impostazione fillEnabled e fillAfter su true funziona sempre per me.

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

Secondo. Può essere raggiunto anche in XML da solo. –

+0

bello! Grazie Fratello. :) –