TransitionDrawable

Un TransitionDrawable es una extensión de LayerDrawables que permite un efecto de fundido entre la primera y la segunda capa. Para iniciar la transición hay que llamar a startTransition(int tiempo). Para volver a visualizar la primera capa hay que llamar a resetTransition()..

Ejercicio paso a paso: Definir un TransitionDrawable

1.     Crea un nuevo proyecto con nombre Transition.

2.     Crea el siguiente recursos en res/drawable/transicion.xml con el código:

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

3.     Copia los ficheros asteroide1.png y asteroide3.png a la carpeta res/drawable. Puedes encontrar los gráficos en el siguiente link:

http://dcomserver.gnd.upv.es/~jtomas/android/ficheros/Graficos.zip


4.     Reemplaza en la actividad el método onCreate por el siguiente código:
 

@Override public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
   ImageView image = new ImageView(this);
   setContentView(image);
   TransitionDrawable transition = (TransitionDrawable)
                       ContextCompat.getDrawable(this, R.drawable.transicion);
   image.setImageDrawable(transition);
   transition.startTransition(2000);
}

5. Si todo funciona correctamente, verás cómo la llamada a transition.startTransition(2000)provoca que la primera imagen se transforme a lo largo de dos segundos en la segunda imagen.