Comienza aquí si no lo ha leído ya: http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html
Android piensa acerca de los eventos táctiles en términos de gestos. Un gesto en este sentido incluye todos los eventos desde el primer dedo que toca la pantalla hasta el último dedo que sale de la pantalla. La secuencia de eventos completa de un solo gesto siempre se envía a la misma vista que se seleccionó durante la ACTION_DOWN inicial a menos que un padre intercepte la secuencia de eventos por algún motivo. Si un padre intercepta la secuencia de eventos de un niño, el niño obtendrá ACTION_CANCEL.
Si está trabajando con eventos multitouch, siempre use el valor devuelto por getActionMasked() para determinar la acción. Si no necesita multitouch o está trabajando con una versión de plataforma anterior, puede ignorar los eventos ACTION_POINTER_ *.
- ACTION_DOWN es para el primer dedo que toca la pantalla. Esto comienza el gesto. Los datos del puntero para este dedo siempre están en el índice 0 en MotionEvent.
- ACTION_POINTER_DOWN es para los dedos adicionales que entran en la pantalla más allá del primero. Los datos del puntero para este dedo están en el índice devuelto por getActionIndex().
- ACTION_POINTER_UP se envía cuando un dedo sale de la pantalla pero al menos un dedo aún lo está tocando. La última muestra de datos sobre el dedo que subió está en el índice devuelto por getActionIndex().
- ACTION_UP se envía cuando el último dedo sale de la pantalla. La última muestra de datos sobre el dedo que subió está en el índice 0. Esto finaliza el gesto.
- ACTION_CANCEL significa que el gesto completo fue abortado por alguna razón. Esto termina el gesto.
No del todo, pero cerca. :) – adamp
ACTION_POINTER_UP se usa en lugar de ACTION_UP cuando todavía hay un dedo en la pantalla – Chris