5

我们可以使用以下函数获取触摸位置在屏幕上的坐标:

public boolean onTouchEvent(MotionEvent event){
    float x_forOnTouch = event.getX();
    float y_forOnTouch = event.getY();  

getX()getY()函数究竟返回了什么?它是否返回像素值?当手指触摸屏幕位置时,它可能会触摸多个像素。那么这个函数究竟返回了什么?

再次假设,在我用手指触摸的区域,屏幕上有多个像素点,如下图:
在此处输入图像描述

假设我需要点击并拖动像素 1 处的点,但我的手指触摸的区域覆盖了像素 1 和 2。如何准确检测单击了哪个像素,以便在我点击并拖动像素 1 或 2 时需要它?

4

1 回答 1

5

好吧,这对你有帮助:http: //developer.android.com/reference/android/view/MotionEvent.html

这些值是斑点的中心或触摸区域。请记住,它可以是鼠标或触控笔之类的工具,因此该区域将更加精确。它具有用于触摸手指的假定区域的方法和常量。

该链接有很多关于这个问题的方法,我不会复制和粘贴,因为它有很好的记录,所以我认为你需要阅读它。

其中一些: getPressure() getSize() getPointerCount() getXPrecision()

关于返回值,设备类型部分将提供大量信息。

一些相关的:

MotionEvent 内容的解释因设备的源类而异。

在具有源类 SOURCE_CLASS_POINTER 的指针设备(例如触摸屏)上,指针坐标指定绝对位置,例如视图 X/Y 坐标。每个完整的手势都由一系列运动事件表示,这些运动事件具有描述指针状态转换和移动的动作。

在具有源类 SOURCE_CLASS_JOYSTICK 的操纵杆设备上,指针坐标指定操纵杆轴的绝对位置。操纵杆轴值标准化为-1.0 到 1.0的范围

于 2013-09-14T19:34:56.877 回答