0

输入事件有多种类型,其中包括触摸事件和悬停事件。

final int source = q.mEvent.getSource();
if ((source & InputDevice.SOURCE_CLASS_POINTER) != 0) {
    deliverPointerEvent(q);
} else if ((source & InputDevice.SOURCE_CLASS_TRACKBALL) != 0) {
    deliverTrackballEvent(q);
} else {
    deliverGenericMotionEvent(q);
}

上面的代码是函数deliveryInputEvent(...) 的一部分。这两种类型分别处理。

  1. 触摸事件是用手触摸屏幕,悬停事件是手写笔触摸屏幕,对吗?
  2. 设备之间有何不同?
  3. 假设设备可以区分,我认为这两个事件是相似的,为什么我们要单独处理它们?
4

1 回答 1

0

最新的设备具有非接触式传感器,可以检测靠近屏幕但​​不触摸的数字或触控笔。这些将用于工具提示和小缩略图等预览功能。

这项技术是黑魔法,不应轻易玩弄。

我预计大多数时候,较小的开发人员将只有资源来处理触摸事件。

于 2013-10-14T15:25:13.137 回答