AlphaAnimation no funciona


He estado buscando una solución a mi problema. Pero mi código parece estar bien.

Voy a tratar de explicar: Tengo un TextView con android:alpha="0" en mi definición de diseño. Quiero (cuando se hace clic en una imagen) mostrar que TextView con una AlphaAnimation, de 0.0 f a 1.0 f.

Mi problema es que cuando hago clic en la imagen, no pasa nada. Pero lo extraño, es que si establezco su alfa a 1 en la definición de diseño, y hago clic en la imagen, puedo ver la animación (alfa 1 - > alfa 0 - > alfa 1).

¿Qué estoy haciendo mal?

Mi código:

TextView tv = (TextView) findViewById(R.id.number);

AlphaAnimation animation1 = new AlphaAnimation(0.0f, 1.0f);
animation1.setDuration(1000);
animation1.setFillAfter(true);
tv.startAnimation(animation1);

Gracias de antemano.

Author: jjimenez, 2012-07-09

2 answers

El problema está en android:alpha="0". Esta propiedad establece la transparencia de una Vista http://developer.android.com/reference/android/view/View.html#attr_android:alpha

Cuando la propiedad alpha es igual a 0 entonces la animación cambia la transparencia de 0*0.0f=0 a 0*1.0f=0. Cuando la propiedad alfa se establece en 1, la animación cambia la transparencia de 1*0.0f=0 a 1*1.0f=1. Es por eso que en el primer caso no se puede ver el texto y en el segundo todo funciona como se espera.

Para hacer que las cosas funcionen tienes que establezca la propiedad visibilidad en invisible en layout xml. Y antes de iniciar la animación alfa llamada tv.setVisibility(View.VISIBLE);

 66
Author: vasart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-08 21:57:40

Una forma más simple se presenta en esta respuesta:

tv.animate().alpha(1).setDuration(1000);
 11
Author: ULazdins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:54:41