2012-01-05 17 views
5

Entiendo las diferencias entre la ID y el índice donde parece que la ID es consistente en todos los eventos, y el índice puede variar.Android Multitouch - ¿Determina qué dedo se levantó?

Sin embargo, sigo cambiando los ID y estoy buscando un entendimiento en esta área. He leído toda la documentación oficial de Android y numerosos blogs, pero no parece haber una respuesta concisa.

Si pongo tres dedos en la pantalla, aparecerán los ID 0, 1 y 2. Esos ID serán constantes para esos tres puntos mientras esos dedos estén en la pantalla. ¿Correcto?

Una vez que se levanta un dedo, digamos el segundo dedo, los puntos seguidos permanecen igual. Todavía hay un punto en x0, y0 y x1, y1, pero los ID ahora son 0 y 1. Aunque el punto con ID número 1 se levantó.

¿Hay alguna forma de ver que se levante el dedo n. ° 2 y seguir los puntos usando ID 0 e ID 2?

Tengo entendido que esto debe hacerse manualmente, y que los valores de ID se mantendrán en el mismo orden, donde el segundo dedo colocado siempre tiene una ID más alta que la primera, pero pueden no mantener el mismo valor cuando se quitan los dedos.

Respuesta

0

La documentación dice "El orden en que aparecen los punteros individuales dentro de un evento de movimiento no está definido". Entonces, si tocas con tu primer, segundo y tercer dedo, podrían aparecer en el orden 0: [primero] 1: [tercero] 2; [segundo].

Podrías levantar el segundo dedo y el siguiente evento de movimiento podría ser 0: [tercero] 1: [primero]. Al menos eso es lo que entiendo al leer los documentos, pero podría estar equivocado.

0

El gran problema con esto es, como dijo Theblacknight, que el comportamiento no está definido. En todos los dispositivos Android 3.0+ que he probado hasta ahora, esto funciona exactamente como era de esperar, los ID y los índices no cambian, todo funciona bien.

Pero en Android < 3.0, aparentemente depende del teléfono. Mi Droid2 se comporta como su problema allí, pero el G2 de mi amigo funciona correctamente.

He estado tratando de encontrar la mejor manera de manejarlo, pero todavía no tengo una gran solución. Si fue consistente y acaba de intercambiar los ID de los puntos una vez, podría aceptarlo, pero si mantienes tu segundo punto y presiona el primero, los dos puntos intercambian identificaciones e índices una y otra vez. Es muy frustrante

Cuestiones relacionadas