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.