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.
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);
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);
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