2012-05-25 14 views
8

Tengo una vista ImageButton en un diseño. Si los usuarios hacen clic en ImageButton, el botón debería desaparecer.Android Alpha Animation: el valor alfa vuelve al valor anterior después de que la animación finalizó

Los botones Fadeout animación se inicia así:

public void buttonClicked(View aButton){ 

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

    aButton.startAnimation(aAnim); 

} 

Esto funciona, pero tan pronto como el ImageButton se desvaneció, su Valor Alfa salta a la derecha de nuevo a 1,0 y el botón es visible de nuevo.

Lo resolví temporalmente con un Listener de Animación que establece el ButtonImage invisible al final de la Animación, pero parece ser una solución extraña para mí.

¿Qué debo hacer para mantener los botones Valor alfa en el último valor de la animación?

Gracias.

+0

Su "solución impar" es el camino a seguir. Es un problema conocido con las animaciones de Android antes del panal. El método más fácil es el de MikeT, pero no siempre funciona de la manera en que lo esperarías –

Respuesta

22

trate de usar aAnim.setFillAfter(true);

+0

¡Gracias, Mike! ¡Eso es! – Tom

1

Si desea establecer un nuevo valor cuando terminó la animación, debe establecer el '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); <- La animación obtiene el modificador, no el botón en sí. – LoungeKatt

Cuestiones relacionadas