AnimationDrawable

La classe AnimationDrawable permette in pochi passi di realizzare un'animazione d'effetto, grazie alla visualizzazione di più immagini in tempi di durata diversi.
Ecco un esempio:

main.java

public class main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ImageView imgvw_animazione = (ImageView) findViewById(R.id.imageview_animazione);
        imgvw_animazione.setBackgroundResource(R.anim.animazione_palline);
        final AnimationDrawable animazione = (AnimationDrawable) imgvw_animazione.getBackground();
        imgvw_animazione.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
                // TODO Auto-generated method stub
                animazione.start();        
            }
        });
    }
}

Il file xml, che regola l'animazione e i vari item è:
animazione_palline.xml (Bisogna creare una cartella all'interno di res e chiamarla "anim" e inserire questo file)

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item android:drawable="@drawable/uno" android:duration="200" />
    <item android:drawable="@drawable/due" android:duration="200" />
    <item android:drawable="@drawable/tre" android:duration="200" />
</animation-list>

Il parametro "onseshot" impostato a false, indica che l'animazione dovrà ripetersi all'infinito.Se fosse stato a true, l'animazione compieva solo un ciclo.

Questo è il Layout:

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:id="@+id/layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <ImageView android:id="@+id/imageview_animazione" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content"/>
</LinearLayout>

Le tre immagini utilizzate per l'animazione sono le seguenti(bisogna inserirle in drawable-hdpi):

uno.png due.png tre.png
uno.png due.png tre.png

(Le immagini sono in allegato, in fondo premere files per poterle scaricare)

Ora se si prova a compilare il progetto, basterà premere sull'immagine per vedere l'animazione partire.