2011-05-05 17 views
6

estoy con éxito capaz de registrar las coordenadas de los dos dedos de ser tocado en la pantalla usando el siguiente código:Android táctil de 3 dedos de detección

case MotionEvent.ACTION_MOVE: 
Log.d("TOUCH", "test ACTION MOVE" + event.getPointerCount()); 
Log.d("TOUCH", "test ACTION MOVE ID" + event.getPointerId(0) + " "+event.getPointerId(1)); 
if(event.getPointerCount()==3) 
{ 

x0 = (int) event.getX(event.getPointerId(0)); 
y0 = (int) event.getY(event.getPointerId(0)); 
x1 = (int) event.getX(event.getPointerId(1)); 
y1 = (int) event.getY(event.getPointerId(1)); 
x2 = (int) event.getX(event.getPointerId(2)); 
y2 = (int) event.getY(event.getPointerId(2)); 

Log.d("TOUCH", "test ACTION DOWN " + " values = " + x0 + " " + y0 + " " 
+ x1 + " " + y1+ " "+x2 + " " + y2); 
} 

pero en el código im anterior no es capaz de detectar más de 2 puntos de contacto en una sola instancia. Incluso el punteroCount() nunca supera el 2.

¿Cómo puedo obtener las coordenadas táctiles para más de 2 dedos? Estoy ejecutando este código en Android 2.2

+0

Hola, no estoy seguro de que esta ayuda usted, pero http://getandroidstuff.com/familiar-android-platform-android-3rd-edition-download- libro/Página 220, Capítulo Multi-Touch. – Pasha

Respuesta

2

Esto fue preguntado hace algún tiempo, pero de todos modos. La respuesta es que aunque Android puede rastrear 256 dedos, la implementación actual limita esto a 2 dedos.

No estoy seguro acerca de honeycomb, pero creo que tiene el mismo "problema".

+0

Bueno, esto es una mierda! :( ¿Cuál es el punto de tener soporte si realmente no podemos utilizarlos? –

+0

Estoy de acuerdo, es bastante malo, ya que la competencia admite muy bien gestos de 3 dedos. El soporte está hecho para que la OMA (Open Mobile Alliance) pueda rodar soporte para más de 2 dedos sin romper la compatibilidad hacia atrás. – Augusto

+0

Entiendo que podría ser una reelaboración para el equipo de Android Engg, pero ¿por qué no podemos tenerlo ahora? ¿Quién sabe cuándo OMA obtendrá el soporte? –

1

He confirmado 4 toques en algunos dispositivos Android 2.3.5, y en cada dispositivo 3.x y 4.x que he probado hasta ahora. Parece que al menos desde la API 8+, se admiten más de dos toques, pero depende del dispositivo.

0

multitouch que utiliza más de dos dedos solo se puede realizar en la versión de Android 4.1.2 o superior y también diferentes compañías han personalizado las versiones de Android según sus necesidades y aplicaciones; es decir, en la versión 4.1.2 el Qmobile solo admite cinco funciones pero la gran compañía Samsung utiliza más de 11 dedos

0
 firstFingerX = MotionEventCompat.getX(ev, 0); firstFingerY = MotionEventCompat.getY(ev, 0); 
if (numberOfFingers == 2) { 
    Log.e("mine", "Integer: " + String.valueOf((int)MotionEventCompat.getY(ev, 1))); 
    secondFingerX = MotionEventCompat.getX(ev, 1); secondFingerY = MotionEventCompat.getY(ev, 1); 
} 
if (numberOfFingers == 3) { 
    Log.e("mine", "Integer: " + String.valueOf((int)MotionEventCompat.getY(ev, 2))); 
    thirdFingerX = MotionEventCompat.getX(ev, 2); thirdFingerY = MotionEventCompat.getY(ev, 2); 

} 
Cuestiones relacionadas