¿Cómo puedo repetir una transición para siempre?

Tengo una transición que se ve así:

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

Y Código que se ve así:

 View divider = v.findViewById(R.id.divider); if (divider != null) { TransitionDrawable transition = (TransitionDrawable) divider.getBackground(); transition.startTransition(2000); } 

Mi problema es, no sé cómo repetir esta transición para siempre, para que pueda crear un efecto pulsante.

Editar:

Para dejar las cosas claras: El código se ejecuta al crear una vista (listitem), por lo que los bucles no son una solución.

Creo que deberías usar AnimationDrawable en lugar de TransitionDrawable: http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html

Sé que esta pregunta es antigua, pero me gustaría ayudar a otros usuarios con otra posible solución.

AnimationDrawable es la forma correcta cuando tienes más de 2 imágenes, pero cuando tienes sólo dos imágenes, también puedes usar TransitionDrawable , como dijiste. Te mostraré cómo hacerlo.

En la primera vez, voy a utilizar un temporizador en mi onCreate() .

  Timer MyTimerImage = new Timer(); 

Entonces, crearé una clase MyTimerTask para ejecutar mi propio código.

 public class MyTimerTask extends TimerTask { LinearLayout myIDLinearLayout= (LinearLayout) findViewById(R.id.myIDofLinearLayout); TransitionDrawable MyTrans = (TransitionDrawable) myIDLinearLayout.getBackground(); int i = 0; @Override public void run() { runOnUiThread(new Runnable(){ @Override public void run() { i++; if (i%2==0) { // MyTrans.startTransition(myTransitionTimeinms); }else{ MyTrans.reserveTransition(myTransitionTimeinms); } }}); } } 

Y finalmente, crearé una variable MyTimerTask para ejecutar mi temporizador. Este código va por debajo de la creación del temporizador ().

  MyTimerTask MyTimer = new MyTimerTask(); MyTimerImage.schedule(MyTimer, myDelay, myPeriod); 

En este caso, el método schedule tiene 3 parámetros: el primero indica nuestra tarea TimerTask, el segundo es el retraso para ejecutar el TimerTask en ms, y el tercero indica cada periodo que queremos ejecutar el código.

No olvide incluir su archivo TransitionFile.xml en su android:background .

Espero que pueda ayudar a alguien.

 public void repeat(){ new CountDownTimer(2000, 1000){ public void onTick(long millisUntilFinished){ transition.startTransition(2000); } public void onFinish() { transition.resetTransition(); repeat(); } }.start(); } 
  View divider = v.findViewById(R.id.divider); boolean loop = true; while (loop) { TransitionDrawable transition = (TransitionDrawable) divider.getBackground(); transition.resetTransition(); //I don't really know if this is necessary transition.startTransition(2000); //you'll want to stop SOME time. if (wantToStop){ loop = false } } 

Eso puede o no puede funcionar correctamente. Digo eso porque durante la transición de 2 segundos, el bucle while continuará en bucle, startTransition volvería a llamar de nuevo, y otra vez, y otra vez, y otra vez. Puede utilizar una instrucción condicional para comprobar la hora actual y comprobar si la última hora iniciada es inferior a 2000.

Esto puede no ser el mejor, pero un bucle de tiempo es un buen lugar para comenzar.

Si usted necesita, podría intentar dar un ejemplo mejor del código que maneje el lazo del tiempo mejor, pero usted debe intentarlo primero.

  • Efectos de transición con Android ImageView
  • Transición de elemento compartido (primer plano / fondo)
  • Animar las transiciones selector / estado
  • ¿Cómo desaparecer y entre dos imágenes?
  • Cómo hacer la animación de marco suave en Android?
  • Android: ¿No hay transición entre las actividades?
  • Error de Android en la transición de la actividad
  • Conversión de imagen a vídeo con efecto de transición
  • Android: cómo animar una transición de actividad cuando se pulsa el botón de retroceso predeterminado
  • ¿Hay una manera de llamar `overridePendingTransition` de una clase que no extiende la clase Activity?
  • La transición de Android no funciona en el teléfono
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.