2012-05-25 10 views
8

Ho una vista ImageButton su un layout. Se gli utenti fanno clic su ImageButton, il pulsante dovrebbe scomparire.Animazione Alpha Android: il valore alfa torna al vecchio valore dopo che l'animazione terminava

I pulsanti FadeOut animazione verrà avviato in questo modo:

public void buttonClicked(View aButton){ 

    final Animation aAnim = new AlphaAnimation(1.0f, 0.0f); 
    aAnim.setDuration(500); 

    aButton.startAnimation(aAnim); 

} 

Questo funziona, ma non appena l'ImageButton è sbiadito fuori, il suo valore Alpha salta a destra di nuovo al 1,0 e il pulsante è di nuovo visibile.

Ho risolto temporaneamente con un listener di animazioni che imposta ButtonImage su invisibile alla fine dell'animazione, ma mi sembra una soluzione strana.

Cosa devo fare per mantenere i pulsanti Valore Alfa al suo ultimo valore dell'animazione?

Grazie.

+0

La tua "soluzione dispari" è la strada da percorrere. È un problema noto con le animazioni Android prima del nido d'ape. Il metodo più semplice è quello di MikeT, ma non sempre funziona come ti aspetteresti da –

risposta

22

provare a utilizzare aAnim.setFillAfter(true);

+0

Grazie Mike! Questo è tutto! – Tom

1

Se si desidera impostare il nuovo valore quando l'animazione finito, è necessario impostare il 'setFillAfter' true.

public void buttonClicked(View aButton){  
    final Animation aAnim = new AlphaAnimation(1.0f, 0.0f); 
    aAnim.setDuration(500); 

    aAnim.setFillAfter(true); 
    aButton.startAnimation(aAnim); 
} 
+0

aAnim.setFillAfter (true); <- L'animazione ottiene il modificatore, non il pulsante stesso. – LoungeKatt

Problemi correlati