Dificuldade em multi toque?

Pessoal tenho aqui uma classe para gerar multi toque, sp que percebi aqui no android 4.X que acima de dois dedos simultâneos as vezes da uma falha no toque, esta classe uso para um aplicativo de bateria instrumental, e tneho que ao tocar com os dedos na tela tocar o som das batidas, mais quando esta com mais de dois dedois as vezes toca e as vezes não, sei que no android 2.X não funciona, mais no 4.X teria que funcionar,.

A classe é esta

import android.view.MotionEvent;
import android.view.View;

public class TouchActions {

	private View[] ultimaViewPointer = new View[4];

	
	public boolean isOver(View view, View parent, MotionEvent event) {

		boolean result = false;

		try {
			
			int action = event.getAction();
			int ptrId = event.getPointerId(0);
			if (event.getPointerCount() > 1)
				ptrId = (action & MotionEvent.ACTION_POINTER_ID_MASK) >>> MotionEvent.ACTION_POINTER_ID_SHIFT;

			switch (event.getAction()) {
			case MotionEvent.ACTION_UP:
			case MotionEvent.ACTION_POINTER_1_UP:
			case MotionEvent.ACTION_POINTER_2_UP:
			case MotionEvent.ACTION_POINTER_3_UP:
				ultimaViewPointer[ptrId] = null;
				return false;
			}

			int[] locV = new int[2];
			view.getLocationInWindow(locV);
			int xL = locV[0];
			int xR = xL + view.getWidth();
			int yT = locV[1];
			int yB = yT + view.getHeight();

			int[] locP = new int[2];
			parent.getLocationOnScreen(locP);
			float x = event.getX(event.findPointerIndex(ptrId)) + locP[0];
			float y = event.getY(event.findPointerIndex(ptrId)) + locP[1];

			boolean isPointerOver = (xL <= x) && (xR >= x) && (yT <= y)
					&& (yB >= y);

			if (isPointerOver) {

				switch (event.getAction()) {
				case MotionEvent.ACTION_DOWN:
				case MotionEvent.ACTION_POINTER_1_DOWN:
				case MotionEvent.ACTION_POINTER_2_DOWN:
				case MotionEvent.ACTION_POINTER_3_DOWN:
					result = true;
					ultimaViewPointer[ptrId] = view;
					break;
				case MotionEvent.ACTION_MOVE:
					if (ultimaViewPointer[ptrId] != view) {
						result = true;
						ultimaViewPointer[ptrId] = view;
					}
				}
			}

		} catch (Exception e) {

		}
	
		return result;
	}
}

Se alguém puder me ajudar, eu agradeço.

o aparelho que vc esta testando suporte multi toque?

[quote=mauricioadl]o aparelho que vc esta testando suporte multi toque?[/quote]Olá, tem sim, estou testando num galaxy S4, obrigado.

Se não me engano você precisa parsear cada toque (todos dentro do mesmo MotionEvent), algo como:

for(int i = 0; i < event.getPointerCount(); i++){
int pointerI = event.getPointerId(i);
//Ver esse ponto
}

[quote=Marky.Vasconcelos]Se não me engano você precisa parsear cada toque (todos dentro do mesmo MotionEvent), algo como:

for(int i = 0; i < event.getPointerCount(); i++){ int pointerI = event.getPointerId(i); //Ver esse ponto } [/quote]Olá Marky.Vasconcelos, sabe informar-me a onde incluo este codigo?

A classe que uso esta ai postado, pode me ajudar, por favor?

Obrigado.

Basicamente, o seu try/catch vai rodar dentro desse loop. A cada iteraçao voce vai estar vendo um indicador diferente (leia-se dedo).

Desculpe minha ignorância, mais poderia me dar um exemplo de como seria feito isso?

To perdido ainda amigo (Pra eu entender só desenhando mesmo…rsrsrs)… Obrigado.