Poner un gif en Android

Primero debemos separar gifs en frames.

Una vez hecho, metemos las imágenes .png dentro de la carpeta Drawable de android.
Dentro de esta misma carpeta creamos un .xml en el cual metemos lo siguiente:
(Mi imagen se llama reloj_arena_f0.png  para el frame 0, reloj_arena_f1 para el frame 1...)

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/reloj_arena_f0" android:duration="500" />
<item android:drawable="@drawable/reloj_arena_f1" android:duration="500" />
<item android:drawable="@drawable/reloj_arena_f2" android:duration="500" />
<item android:drawable="@drawable/reloj_arena_f3" android:duration="500" />
<item android:drawable="@drawable/reloj_arena_f4" android:duration="500" />
</animation-list>

Duration es la duración que está cada imagen antes de pasar a la siguiente.

En el .xml de la clase en la que quieras meter el gif, creas un ImageView de la siguiente manera:

<ImageView
android:layout_width="30dp"
android:layout_height="60dp"
android:id="@+id/imageRelojArena" />

Y en el .java asociado al .xml anterior, le das accion a la imagen.

ImageView imagenRelojArena = ( ImageView ) findViewById( R.id.imageRelojArena );
imagenRelojArena.setBackgroundResource( R.drawable.loading );
AnimationDrawable animationDrawable = ( AnimationDrawable ) imagenRelojArena.getBackground();
//para iniciarlo
animationDrawable.start();
//parar pararlo
animationDrawable.stop();