MotionEvent的getActionMasked返回用其他值遮盖的ActionMove如何确定这些其他值?

问题描述

我正在用MotionEvent实现手写笔按钮。

因此,当我在不按手写笔按钮的情况下拖动屏幕时,我将从getActionMasked()中获得以下值:0(ACTION_DOWN),2(ACTION_MOVE)和3(ACTION_UP)

但是,当我按住手写笔按钮时,这些运动事件使我的getActionMasked()值分别为:211(ACTION_DOWN),213(ACTION_MOVE)和212(ACTION_UP)。

Android文档说BUTTON_STYLUS_PRIMARY的值为32,并且未将其指定为掩码值的可能部分。那么为什么我要得到211、213和212的掩码值?

我希望能够通过按下按钮来检测常规的测针运动和测针运动。但我不想做以下if语句

 if (event.getActionMasked() == 213)

我想避免使用诸如213之类的常量值,因为它可能会在Android源代码中更改为其他值。相反,我想定期这样做:

if (event.getActionMasked() == MotionEvent.ACTION_MOVE)

但是我需要确定如何取消屏蔽212以获得2的实际值。我不需要这些额外的信息,因为我可以使用以下命令分别检查按钮的按下状态:

if (event.getButtonState() == MotionEvent.BUTTON_STYLUS_PRIMARY)

那么这是怎么回事?为什么按下按钮会更改ACTION_MOVE值?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...