¿Cómo detectar la posición táctil en el trabajo de pantalla de Android?
Podemos obtener las coordenadas de la posición táctil en la pantalla usando las siguientes funciones:
public boolean onTouchEvent(MotionEvent event){ float x_forOnTouch = event.getX(); float y_forOnTouch = event.getY();
¿Qué es exactamente devuelto por las getX()
y getY()
? ¿Está devolviendo valores de píxeles? Cuando un dedo toca una posición de pantalla, probablemente toque un número de píxeles. Entonces, ¿qué es exactamente lo que devuelve la función?
- Cómo encontrar la vista de origen de un MotionEvent ACTION_CANCEL
- No hay interrupción en SwipeRefreshLayout.java en el módulo android 5 onInterceptTouchEvent
- Android MotionEvent Puntero Indice Confusión
- ¿Qué causa un MotionEvent.ACTION_CANCEL en Android?
- OnInterceptTouchEvent nunca recibe action_move
Una vez más, supongamos que en el área que toco con mi dedo, hay varios píxeles en la pantalla, como se muestra a continuación:
Supongamos que necesito hacer clic y arrastrar el punto en el píxel 1, pero el área que toque mi dedo cubre los píxeles 1 y 2. ¿Cómo puedo detectar con exactitud qué píxel se ha hecho clic, de modo que pueda hacer clic y arrastrar en el píxel 1 o 2 cuando ¿necesito?
- android arrastrar y soltar ImageView onTouchListener
- Sincronización de dos ListViews lado a lado de Android
- Android inyecta evento táctil
- Motionevent Action_MOVE sigue disparando X e Y aunque no se mueva
- La diferencia de utilizar el método MotionEvent.getAction ()
- Android: Recyclerview horizontal dentro de una Recyclerview vertical
- Event.getAction () nunca utiliza MotionEvent.ACTION_UP
- Obtener coordenadas de botones y detectar si el dedo está sobre ellos - Android
Bueno, eso puede ser de ayuda para usted: http://developer.android.com/reference/android/view/MotionEvent.html
Supongo que los valores son el centro de la mancha o área del tacto. Recuerde que puede ser una herramienta como un ratón o un lápiz para que el área sea más precisa. Tiene métodos y constantes para el supuesto área del dedo que está tocando.
El enlace tiene tantos métodos sobre esa pregunta, que no copiaré y pegaré, ya que está bastante documentado, así que creo que necesitas leerlo.
Algunos de ellos: getPressure()
getSize()
getPointerCount()
getXPrecision()
Acerca del valor devuelto, la sección Tipos de dispositivo dará mucha información.
Algunos relevantes:
La interpretación del contenido de un MotionEvent varía significativamente dependiendo de la clase de origen del dispositivo.
En los dispositivos apuntadores con clase de origen SOURCE_CLASS_POINTER, como las pantallas táctiles , las coordenadas del puntero especifican posiciones absolutas, como las coordenadas X / Y de la vista . Cada gesto completo está representado por una secuencia de eventos de movimiento con acciones que describen las transiciones y movimientos del estado del puntero.
En los dispositivos joystick con clase de origen SOURCE_CLASS_JOYSTICK, las coordenadas del puntero especifican la posición absoluta de los ejes del joystick. Los valores del eje del joystick se normalizan en un rango de -1.0 a 1.0
- No se encontró ningún recurso que coincida con el nombre dado: attr 'android: actionModeShareDrawable'
- Android Deep Linking instala