安卓多点触控

标签 android touch-event multi-touch

因此,我正在尝试使用 onTouchEvent 检查多个屏幕触摸,但它似乎仍然只读取第一次触摸。谁能帮忙? 这是我的代码:

public boolean onTouchEvent(MotionEvent e)
{
    int num = e.getPointerCount();
    for(int a = 0;a<num;a++)
    {
    int x = (int) e.getX(e.getPointerId(a));
    int y = (int) e.getY(e.getPointerId(a));
    check(x,y);
    }

    return false;
}

我浏览了很多这样的论坛,但大多数与多点触控相关的主题都是关于缩放的。

最佳答案

您的代码在我的设备(Nexus S、Android 2.3)上运行良好。它读取所有触摸。

测试代码如下:

  public boolean onTouchEvent(MotionEvent e) {
    int num = e.getPointerCount();
    for (int a = 0; a < num; a++) {
      int x = (int) e.getX(e.getPointerId(a));
      int y = (int) e.getY(e.getPointerId(a));
      Log.d(TAG, "pointer_" + e.getPointerId(a) + ": x = " + x
          + ", y = " + y);
    }
    return false;
  }

这是日志(用 5 个手指触摸):

11-09 17:32:55.542: D/Touch(20594): pointer_0: x = 169, y = 613
11-09 17:32:55.542: D/Touch(20594): pointer_1: x = 407, y = 289
11-09 17:32:55.542: D/Touch(20594): pointer_2: x = 62, y = 441
11-09 17:32:55.542: D/Touch(20594): pointer_3: x = 251, y = 202
11-09 17:32:55.542: D/Touch(20594): pointer_4: x = 132, y = 256

您的 Android 设备和操作系统版本是多少?

关于安卓多点触控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8059127/

相关文章:

Android - 如何让两个 View 接收并执行相同的触摸事件?

android - 拖动后如何使 EditText 可编辑

java - 在自定义适配器类中调用 Activity 方法

android - 在 ImageView 中检测触摸

javascript - 多点触控桌面浏览器

android - 你如何使用 MotionEvent.ACTION_POINTER_INDEX_SHIFT?

windows-phone-7 - 是否可以为 Windows Phone 7 模拟器模拟第二根手指?

android - Appcelerator Studio - 当我在视频播放器中加载 URL 时,Android 应用程序在 Marshmallow 上崩溃

android - ScrollView 无法在模拟器上运行

iphone - 使用 Touchevent 在 jQuery 中拖放(iPhone 浏览器)