问题 Android:通过手指触摸屏幕测量/检测覆盖区域(不仅仅是触摸坐标)


我想在Android上访问每个触摸事件的手指所覆盖的区域。

每个触摸事件将产生坐标对X和Y,而不依赖于手指的大小以及因此触发事件的触摸区域。

我想知道是否有办法获得触发触摸事件的区域数据,例如大小或坐标NOT

任何帮助深表感谢。

在此先感谢您的回答或重定向,

基督教


7221
2017-08-06 09:11


起源



答案:


方法 motionEvent.getSize() 应该给你你想要的东西(但准确度可能会有所不同,具体取决于设备的屏幕)。


14
2017-08-06 09:58



谢谢,看起来不错。我希望谷歌平板电脑将支持这种方法。 - chriz


答案:


方法 motionEvent.getSize() 应该给你你想要的东西(但准确度可能会有所不同,具体取决于设备的屏幕)。


14
2017-08-06 09:58



谢谢,看起来不错。我希望谷歌平板电脑将支持这种方法。 - chriz


您需要实现OnGestureListener。

首先,您需要在onTouchEvent中注册GestureDetector

@Override
public boolean onTouchEvent(MotionEvent event) {
    mGestureDetector.onTouchEvent(event);
    return true;
}

在onShowPress你会得到起点

@Override
public void onShowPress(MotionEvent e) {
    startX = e.getX();
    startY = e.getY();
}

在onScroll中,您将获得终点。

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
        float distanceY) {
            endX = e2.getX();
            endY = e2.getY();
}

2
2017-08-06 09:44



这不会给你一个单一的触摸区域,我认为是提问者所追求的。 - oli
感谢您的回答! - chriz