2011-02-23 25 views
33

Quiero tener un View que inicialmente es invisible y cuando presiono un botón, se vuelve visible con un desvanecimiento en la animación. Estoy usando el AlphaAnimation para el efecto de desvanecimiento. El problema es que si hago invisible la vista, la animación no se puede ver.Usando fundido en animación para una vista

Muchas gracias,

Gratzi

Respuesta

25

Proporcionan un AnimationListener a la animación y hacen la vista visible en cuanto se inicia la animación.

http://developer.android.com/reference/android/view/animation/Animation.AnimationListener.html

+3

Muchas gracias, hombre! El problema es que la aplicación no se realiza si la vista es invisible, por lo que no se pudo usar el método onStartAnimation. Pero he establecido la vista visible en el oyente del botón, antes de comenzar la animación, y configuro la vista para que sea invisible en onEndAnimation. – Gratzi

+0

No entiendo por qué configuras la animación como invisible en onEndAnimation, en tu pregunta inicial dices que quieres que se desvanezca y se vuelva visible, ¿por qué configuraste invisible en onEndAnimation? – Ixx

125

Suponga que tiene un ImageView llamado imageView y un archivo de animación your_fade_in_anim.xml dentro de sus res \ anim \ carpeta:

ImageView imageView = (ImageView) findViewById(R.id.imageView); 
Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.your_fade_in_anim); 
// Now Set your animation 
imageView.startAnimation(fadeInAnimation); 

Su XML

<?xml version="1.0" encoding="UTF-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <alpha 
     android:fromAlpha="0.0" 
     android:toAlpha="1.0" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="[duration (in milliseconds)]" 
     android:repeatCount="infinite" /> 
</set> 

Reemplazar los soportes con tu duración real

+10

¿Cómo soluciona esto el problema de que la vista sea inicialmente invisible? – Ixx

+4

¿Por qué esta respuesta recibió tantos votos hacia arriba? ni siquiera responde la pregunta. –

+47

Si bien no responde la pregunta en el cuerpo, responde la pregunta "¿Cómo me desvanezco en una vista?", Que es el título de la pregunta. Debido a eso, imagino que mucha gente encuentra esta respuesta mientras busca cómo hacer animaciones (como lo hice yo). Si bien no es estrictamente la respuesta, definitivamente es útil. – karl

3

En lugar de repetir infinitamente y ocultar/ver su Vista, sugiero simplemente no repetir la animación y comenzar inicialmente con el canal alfa configurado al máximo. Entonces puede usar:

<?xml version="1.0" encoding="UTF-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <alpha 
     android:fromAlpha="0.0" 
     android:toAlpha="1.0" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="[duration (in milliseconds)]" 
     android:repeatCount="0" /> 
</set> 

Y listo. No es necesario que un oyente se oculte o se muestre. Tan simple.

Cuestiones relacionadas