【问题标题】:Disabling touch in Android (only allowing stylus)在 Android 中禁用触摸(仅允许手写笔)
【发布时间】:2017-07-21 14:17:07
【问题描述】:

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

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

【问题讨论】:

  • 这个link 可以帮助你。
  • @huk 我可以区分触摸和手写笔。我想做的是只允许手写笔。

标签: android android-touch-event


【解决方案1】:

不确定没有更好的方法,但您可以创建自定义视图,将其放在布局中的最顶部(使其具有全宽和全高,以便覆盖整个区域)。视图唯一的工作是处理输入并通过将它们标记为已处理来“消耗”您想要过滤掉的所有运动事件(即这些不是来自触控笔),并忽略所有其他事件,从而允许框架通过您的视图层次结构传播由其他视图定期处理。

编辑

最简单的实现是让您的视图扩展现有但简单的东西,例如。 FrameLayoutSpace (因此您无需打扰所有测量内容)并覆盖 onTouchEvent() 以过滤所有输入。如果这是您不想传递的内容,请通过返回 true 在此处“使用”它,否则返回 false 以便传播。 重要的是让您的视图最重要以覆盖所有其他视图,即

FrameLayout
   YourCustomView
   PreviousLayout

【讨论】:

  • 非常感谢您的回答。你能举个例子来说明你的方法吗?
  • 这很简单,但请参阅编辑后的答案
猜你喜欢
  • 2020-07-28
  • 1970-01-01
  • 2020-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多