Animación de Android Alpha

Tengo animación

<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator"> <alpha android:fromAlpha="0.2" android:toAlpha="1.0" android:duration="500"/> </set> 

Y ImageView

 <ImageView android:id="@+id/listViewIcon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/settings" android:alpha="0.2"/> 

Y código:

 final Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha); final ImageView iv = (ImageView) findViewById(R.id.listViewIcon); anim .setFillAfter(true); iv.startAnimation(anim); 

Así que al principio tengo ImageView con alfa 0.2 y al final quiero tener ImageView con alfa 1. Pero no funciona así – cuando la animación comienza más alfa se agrega y la animación termina con alfa 0.2

¿Qué tengo que cambiar para animar mi imagen de 0.2-> 1?

He comprobado con diversos ajustes – fijé android: alfa = "1.0", fromAlpa = "1.0" toAlpha = "0.2" trabaja como esperaba – de alfa 1 a 0.2. Parece que alfa de ImageView se multiplica por alfa de animación …

5 Solutions collect form web for “Animación de Android Alpha”

Prueba esto

 AlphaAnimation animation1 = new AlphaAnimation(0.2f, 1.0f); animation1.setDuration(1000); animation1.setStartOffset(5000); animation1.setFillAfter(true); iv.startAnimation(animation1) 

El ajuste de alfa a 1 antes de comenzar la animación funcionó para mí:

 AlphaAnimation animation1 = new AlphaAnimation(0.2f, 1.0f); animation1.setDuration(500); iv.setAlpha(1f); iv.startAnimation(animation1); 

Al menos en mis pruebas, no hay parpadeo debido a la configuración de alfa antes de iniciar la animación. Simplemente funciona bien.

 <ImageView android:id="@+id/listViewIcon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/settings"/> 

Quitar android:apha=0.2 de XML-> ImageView.

Hm …

La cosa está mal, y posiblemente en el funcionamiento adecuado de las animaciones en la API de Android.

El hecho es que cuando usted fija en su código el valor del alpha de 0.2f se basa en los ajustes en el archivo del xml para android significa que:

 0.2f = 0.2f of 0.2f (20% from 100%) ie from 0.2f / 5 = 0.04f 1f = 0.2f 

Por lo tanto, su animación funciona de 0,04f a 0,2f

Flag setFillAfter(true) ciertamente funciona, pero debes entender que al final de tu animación ImageView tendrá el valor alpha 0.2f en lugar de uno, porque especificas 0.2f como valor marginalmente aceptable en la animación (un tipo de alpha máximo canal).

Así que si quieres tener el resultado deseado llevará toda tu lógica a tu código y manipularás animaciones en código en lugar de determinar en xml.

Debes entender que tus animaciones dependen directamente de dos cosas:

  • LayoutParams de Vista Animada
  • Parámetros de animación.

Los parámetros de animación manipulan sus LayoutParams en los métodos setFillAfter \ setFillBefore .

Si desea aplicar la animación directamente con un código de pasta listo para copiar, eche un vistazo aquí

  • SlidingDrawer semi abierto al inicio
  • Cómo aplicar mediante programación simultáneamente translate & scale animation en una vista
  • Fragmentos de ViewPager - Transiciones de elementos compartidos
  • Fragmento de superposición de animación de transacciones
  • cómo cerrar un fragmento al tirar hacia arriba o hacia abajo?
  • Disminuir la velocidad de View Pager en android
  • Android aplicar color a la animación alfa
  • Animación de texto de izquierda a derecha como brillo en Android
  • Deslice la animación expandida en android
  • Diálogo de progreso personalizado con la rotación de imagen Squre con AsynTask
  • Transiciones de la actividad de Android con la ayuda v4 actualizada con Android L
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.