getactionmasked()返回actionmove masked和其他一些值如何确定这些其他值?

vcudknz3  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(149)

我正在用motionevent实现手写笔按钮。
因此,当我在屏幕上拖动而不按手写笔按钮时,我将从getactionmasked()获得以下值:0(action\u down)、2(action\u move)和3(action\u up)
但是,当我按住手写笔按钮时,这些运动事件会为我提供getactionmasked()值:211(action\u down)、213(action\u move)和212(action\u up)。
android文档中说button\u stylus\u primary的值是32,并且没有指定为掩码值的可能部分。那么为什么我要得到211213和212的屏蔽值呢?
我想能够检测到有规律的手写笔移动和手写笔移动的按钮按下。但我不想做下面的if语句

if (event.getActionMasked() == 213)

我希望避免使用像213这样的常量值,因为在android源代码中它可能会更改为不同的值。相反,我希望定期这样做:

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

但我需要确定如何取消掩码212以获得2的实际值。我不需要这些额外的信息,因为我可以简单地单独检查按钮按下状态:

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

这是怎么回事?为什么按键会改变动作值?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题