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
- ¿Cuál es la forma correcta de animar una vista de una coordenada a otra?
- Animación de fragmentos de Android con el paquete de compatibilidad
- Cómo establecer ninguna animación para la primera vista de ViewFlipper
- Cómo crear animación ECG en la aplicación Android
- Custom android AccelerateDecelerateInterpolator
<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 …
- Cómo generar la animación de bucle con ViewPropertyAnimator?
- Comportamiento extraño de View.getHitRect ()
- Activación de la transición deslizante dentro / fuera de la animación
- Adaptador de actualización de animación ListView android
- Animación de la actividad de capa deslizante android
- Ejemplo completo de cómo programar RotateAnimations?
- Hacer una animación de fragmentos de inserción
- Problema de AnimationSet en android
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í
- Cómo ejecutar pruebas de unidad con Android Studio
- Instagram de Android abierto en cierto usuario y añadir leyenda a la imagen subida