AnimationDrawable

Android nos proporciona varios mecanismos para crear animaciones. Una ventaja a destacar es que estas animaciones pueden ser creadas en ficheros XML. En este apartado veremos una de las animaciones más sencillas, las creadas a partir de una serie de fotogramas. Para ello utilizaremos la clase  AnimationDrawable.

Ejercicio paso a paso: Uso de AnimationDrawable.

1.     Crea un nuevo proyecto con nombre Animacion. Ha de crearse una actividad inicial con nombreAnimationActivity.

2.     Crea el siguiente recurso res/drawable/animacion.xml.

<animation-list
xmlns:android= "http://schemas.android.com/apk/res/android"
   android:oneshot= "false">
          <item android:drawable="@drawable/misil1" 
                       android:duration="200" />
          <item android:drawable="@drawable/misil2" 
                       android:duration="200" />
          <item android:drawable="@drawable/misil3" 
                       android:duration="200" />
</animation-list>

3.     Copia los ficheros misil1.png, misil2.png y misil3.png a la carpeta res/drawable.Pudes encontrar los gráficos en el siguiente link: http://dcomserver.gnd.upv.es/~jtomas/android/ficheros/Graficos.zip

4.     Reemplaza el código de la actividad por:

public class AnimacionActivity extends Activity {
       AnimationDrawable animacion;
       @Override public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             animacion = (AnimationDrawable)
                    ContextCompat.getDrawable(this,.R.drawable.animacion); 
                                                                                             R.drawable.animacion);
             ImageView vista = new ImageView(this);
             vista.setBackgroundColor(Color.WHITE);
             vista.setImageDrawable(animacion);
             vista.setOnClickListener(new OnClickListener() {
                    public void onClick(View view) {
                     animacion.start();
                    }
             });
             setContentView(vista);
       }
}

En este ejemplo se comienza declarando un objeto animacion de la clase AnimationDrawable. Se inicializa utilizando el fichero XML incluido en los recursos. Se crea una nueva vista de la claseImageView para ser representada por la actividad y se pone como imagen de de esta vistaanimacion.  Finalmente se crea un escuchador de evento onClick para que cuando se pulse sobre la vista se ponga en marcha la animación.
 

NOTA: A partir de Android API 19 (4.4) este tipo de animaciones se inician automáticamente, mientras que en las anteriores hace falta iniciarlas manualmente.
 

Preguntas de repaso y reflexión:

Pincha aquí para hacer un test.