Cómo hacer continuamente ejecutando TransitionDrawable animación en Android?

Estoy tratando de hacer un logo animado. Se compone de dos imágenes estáticas.

Me gustaría lograr un efecto de desvanecimiento cruzado.

Lo he hecho con el uso de TransitionDrawable, establecer el crossFadeEnabled y todo se ve bien.

La cosa es que necesito correr en círculo. ¿Cómo puede lograrse?

<transition xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/image_expand"> <item android:drawable="@drawable/image_collapse"> </transition> Resources res = mContext.getResources(); TransitionDrawable transition = (TransitionDrawable) res.getDrawable(R.drawable.expand_collapse); ImageView image = (ImageView) findViewById(R.id.toggle_image); image.setImageDrawable(transition); 

Este es el código de google que funciona perfectamente. Lo más importante es que en las necesidades de trabajar bajo Android 1.6.

2 Solutions collect form web for “Cómo hacer continuamente ejecutando TransitionDrawable animación en Android?”

Me las arreglé para obtener la transición para poder trabajar a través de un método manejador que invierte la dirección después de la transición de drawable1 a drawable2. En mi XML:

 <?xml version="1.0" encoding="utf-8"?> <transition xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/background_animation1"/> <item android:drawable="@drawable/background_animation2"/> </transition> 

Realmente no hay una manera incorporada de hacer esto. TransitionDrawable no está diseñado con una función de animación de bucle infinito. La recomendación más fácil sería usar una Animation (alfa, escala, traducir, etc.) en una View contenga solo uno de sus Drawable s si puede.

Un hack bastante fácil sería agregar un Handler y una devolución de llamada a su View personalizada que mantiene su TransitionDrawable . Cuando se crea la View , el Handler se puede establecer en el intervalo de transición. La View también implementaría Handler.Callback y dentro de su handleMessage(Message) , llamaría reverseTransition(int) en su TransitionDrawable .

Un ejemplo aproximado está abajo:

 public class myView extends View implements Handler.Callback { private Handler mHandler = new Handler(this); private int mDelay = 1000; // Delay in milliseconds. private Runnable mEvent = new Runnable() { public void run() { mHandler.removeCallbacks(mEvent); mHandler.postDelayed(mEvent, mDelay); Message message = mHandler.obtainMessage(); mHandler.sendMessage(message); } }; public View(Context context) { super(context); // Set your background TransitionDrawable. setBackgroundDrawable(...); } public handleMessage(Message message) { TransitionDrawable drawable = (TransitionDrawable) getBackgroundDrawable(); drawable.reverseTransition(mDelay); } public void start() { mHandler.post(mEvent); } public void stop() { mHandler.removeCallbacks(mEvent); } } 

start() llamada start() para iniciar su transición continua, stop() para detenerla. Es un poco como crear su propia animación, pero funciona en una pizca.

  • OverridePendingTransition en el adaptador gridview
  • Error de Android en la transición de la actividad
  • Implementar página curl en android?
  • Desarrollador de Android se traslada a iOS - ¿Qué necesito saber?
  • Efectos de transición con Android ImageView
  • ¿Cómo puedo repetir una transición para siempre?
  • Transición de elemento compartido (primer plano / fondo)
  • ¿Hay una manera de llamar `overridePendingTransition` de una clase que no extiende la clase Activity?
  • OverridePendingTransition no funciona cuando se utiliza FLAG_ACTIVITY_REORDER_TO_FRONT
  • Android: cómo animar una transición de actividad cuando se pulsa el botón de retroceso predeterminado
  • Cómo cambiar todas las transiciones de actividad de una vez en la aplicación de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.