ANDROID – cómo comprobar si la animación se está ejecutando antes de comenzar la nueva animación
Ok, así que tengo una actividad donde tengo varios ImageViews y cuando se hace clic en el ImageView se desvanecen y se desvanecen de nuevo pulg Lo que estoy tratando de averiguar es cómo puedo hacer clic en un ImageView y comenzar la animación y cuando hago clic Una segunda y la animación sigue en ejecución ignorará la segunda. Creo que necesito hacer algo con animationListener pero no puedo averiguar cómo usarlo para comprobar si la animación se está ejecutando o no antes de iniciar una nueva animación. Podría haber jurado que vi un ejemplo que lo hizo pero he estado buscando días y ya no puedo encontrarlo, espero que alguien pueda ayudar aquí ….. abajo está el código para mi animación:
// Create Animation protected void fadeAnimation() { tempImg.startAnimation(fadeout); //Allow animation to finish mHandler.postDelayed(new Runnable() { public void run() { tempImg.startAnimation(fadein); } }, 1000); }
- SetRetainInstance (true) + setCustomAnimations (...) = animación para cada cambio de orientación?
- Transición de elemento compartido (primer plano / fondo)
- Implemente Google-Play-Music como animación (espectro de 3 barras junto al elemento de la lista de reproducción)
- Configuración de android: animateLayoutChanges programmatically
- Cómo cargar sprite hoja con 5 filas y 5 columnas vista superior en android?
- Cómo animar la adición o la eliminación de Android ListView filas
- Animación de Flip de Tarjeta entre Actividades
- Animación de la actividad de capa deslizante android
- Cómo desplazar la vista de desplazamiento horizontal sin animación
- como puedo parar la animacion
- Animar elementos recién agregados en ListView
- Fragmentos de ViewPager - Transiciones de elementos compartidos
- Animación de curl de página de actividad de Android
Estoy asumiendo que ambos fadeout y fadein son objetos de Animation
.
Utilice fadeout.hasEnded()
para comprobar si la primera ha finalizado antes de iniciar la segunda.
Para obtener más detalles sobre la clase de Animation
, consulte aquí: http://developer.android.com/reference/android/view/animation/Animation.html
En lugar de tener que realizar un bucle en otro hilo para comprobar si una animación ha terminado, podría utilizar un oyente de animación, haciendo algo como esto:
// Create Animation protected void fadeAnimation() { fadeout.setAnimationListener(new Animation.AnimationListener(){ @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { tempImg.startAnimation(fadein); } @Override public void onAnimationRepeat(Animation animation) { } }; tempImg.startAnimation(fadeout); }
Con este tipo de solución usted no necesitaría comprobar activamente si una animación ha terminado y tiempo con la duración de la animación anterior.
El onAnimationEnd (Animación) se activa justo después de que la animación ha terminado. Esto también resuelve el problema de los usuarios con las opciones de desarrollador "on" y la velocidad de animación establecida en "off".
- No se pudo resolver: com.github.PhilJay: MPAndroidChart: v2.1.4
- Cordova plugin desarrollo – agregando aar