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

发布于 2024-09-13 07:47:14 字数 186 浏览 6 评论 0原文

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

每个触摸事件都会产生一个坐标对 X 和 Y,与触发事件的手指有多大以及触摸区域无关。

我想知道是否有一种方法可以获取触发触摸事件的区域数据,例如大小或坐标,

非常感谢任何帮助。

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

克里斯蒂安

I would like to get access to the area covered by a finger for each touch event on an Android.

Every touch event will result in a coordinate pair X and Y independent of how big the finger and consequently the touch area is that triggered the event.

I was wondering if there is a way to get the area data which triggered the touch event e.g. size or coordinates NOT

Any help is much appreciated.

Thanks in advance for you answer or redirects,

Christian

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

墨落成白 2024-09-20 07:47:14

方法 motionEvent.getSize() 应该可以满足您的需求(但准确度可能会因设备屏幕的不同而有所不同)。

The method motionEvent.getSize() should give you what you want (but the level of accuracy may vary depending on the device's screen).

一个人的旅程 2024-09-20 07:47:14

您需要实现 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();
}

You need to implement OnGestureListener.

First of all, you need to register GestureDetector in onTouchEvent

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

In onShowPress you will get starting points

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

In onScroll you will get the end points.

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
        float distanceY) {
            endX = e2.getX();
            endY = e2.getY();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文