【发布时间】:2014-03-29 18:59:11
【问题描述】:
我一直在寻找一种在使用移动触摸设备时检测手指方向以及以椭圆形式简化触摸区域的方法。我选择 Android 而不是 iOS,因为我在 Android 参考资料中找到了三个有用的方法(getTouchMajor()、getTouchMinor() 和 getOrientation())MotionEvent class。 但是我尝试在我的应用程序中实现这三种方法,遗憾的是它们没有返回想要的值。无论如何,方向都保持在 0,而 getTouchMajor 和 getTouchMinor 每次都完全相同。
所以我的问题是:我做错了什么还是这些方法还没有实现?
(我在几种不同的设备上尝试过这些功能,包括:Nexus 5、Nexus 7 和 HTC One)
【问题讨论】:
-
撞!非常令人不安的是,这些方法是在第 9 级时引入 API 的,现在是第 19 级,大约在 3 年前,它变成了 10 级。并且没有对支持这些功能的硬件提出任何要求,这让开发人员质疑媒体中的可能性。
-
自从我使用这些已经大约两年了,但它们过去在许多设备上肯定对我有用。您是否也尝试过使用
getHistoricalOrientation、getHistoricalTouchMajor等。可能也值得尝试getSize和getHistoricalSize。 -
Dane,你还记得你用过哪些设备吗?你得到正确的值了吗?自从我写了这篇文章后,我设法拿到了三星 Galaxy Tab 3,它实际上为
getTouchMajor和getTouchMinor提供了不同的数字。但不幸的是,major在任何时候都只是minor乘以三。 -
不幸的是,我不记得这些设备了。那时,我工作的地方有数百种不同的 Android 设备。我刚刚在我的 Moto X 上试了一下,得到了反映触摸大小的主要/次要数字。但主要/次要总是相等的。方向总是 0。所以这似乎是一个常见的场景。我会想象带有手写笔的东西(比如 Galaxy Note)会返回更好的值。
-
我使用的是 2014 年的 Galaxy Note Pro 12.2,它仍然提供方向 -pi 始终和主要 = 3 * 次要,它似乎只是在大约 0.5 的离散步骤中发生变化,它们应该删除如果在 API 的 10 个版本之后没有制造商提供正确的信息,则来自 API。
标签: android motionevent