在 Android 中禁用触摸(只允许手写笔)

Disabling touch in Android (only allowing stylus)

我正在为平板电脑编写一个 Android 5.1 应用程序,我能够在 MotionEvent 对象的帮助下区分触摸和手写笔输入。

是否可以只允许触控笔输入(即触摸应该没有效果)?

不确定是否有更好的方法,但您可以创建自定义视图,将其放在布局的最顶部(使其占据整个宽度和高度,以便覆盖整个区域)。仅查看的工作是处理输入和 "consume" 所有你想过滤掉的运动事件(即这些不是来自手写笔)通过将它们标记为已处理,并忽略所有其他的,允许框架通过你的视图传播由其他视图定期处理的层次结构。

编辑

最简单的实现方式是使您的视图扩展现有但简单的内容,例如。 FrameLayoutSpace(这样您就不需要打扰所有的测量内容)并覆盖 onTouchEvent() 以过滤所有输入。如果您不想传递此内容,请在此处 returning true 将其 "consume",否则 return false 它将传播。 并且重要的是让您的视图最上面覆盖所有其他视图,即

FrameLayout
   YourCustomView
   PreviousLayout