gpt4 book ai didi

android - onTouch MotionEvent getTouchMinor 和 getTouchMajor 总是得到完全相同的数字结果,为什么?

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:50 24 4
gpt4 key购买 nike

查看文档,touch major 和 touch minor 是触摸事件的椭圆轴。一个是触摸区域最长测量的长度,另一个是触摸事件的最短时间。就像椭圆的测量。

但是,我在多个 Android 平板电脑上针对 getTouchMajor 和 getTouchMinor 方法测试了此代码。并通过将我的手指放下来做到这一点,这样触摸屏幕的表面区域在一个方向上会更长,所以它不会是一个圆圈。这样最大和最小数字不应该相同。

问题在于,无论在触地事件中触摸屏幕的区域是什么形状,两者始终是完全相同的 float 。唯一可能的方法是触摸屏幕的手指皮肤区域是一个圆圈。

所以基本上,我使用的两个安卓平板电脑将触摸的触摸事件区域视为圆形区域,有时更大或更小,但总是使它成为圆形,是否有任何设备可以为您提供更准确的形状?

我从这些函数中获得的唯一有用信息是触摸区域的一般大小。

为什么两个数字一样。这不是正确的结果吗?

if(event.getAction() == MotionEvent.ACTION_DOWN){
float x = event.getX();
float y = event.getY();
float touchMajor = event.getTouchMajor(); // major axis of ellipse touch area
float touchMinor = event.getTouchMinor(); // minor axis of ellipse touch area

// Toast.makeText(context, "x " + x , Toast.LENGTH_SHORT).show();
// Toast.makeText(context, "y " + y , Toast.LENGTH_SHORT).show();
Toast.makeText(context, "touchMajor " + touchMajor , Toast.LENGTH_SHORT).show();
Toast.makeText(context, "touchMinor " + touchMinor , Toast.LENGTH_SHORT).show();

最佳答案

我的项目组和我对同一件事感兴趣(我们发布了这个:Android finger detection - Orientation and ellipse)

我们发现了暗示性评论,可能大多数设备的触摸屏驱动程序不向系统提供此数据。

我们现在已经测试了:三星 Galaxy S2、HTC One、Nexus 5(LG 出品)和 Nexus 7(华硕出品)、三星 Galaxy Tap3

当我们测试 Samsung Galaxy Tap 3 时,我们终于得到了 getTouchMajor() 和 getTouchMinor() 的不同值,但喜悦只是短暂的,因为我们发现 getTouchMajor() = getTouchMinor() * 3,在任何情况下,和所有其他设备一样,getOrientation() 始终为 0。

我们的结论是大多数设备不支持,getTouchMajor(), getTouchMinor()。或获取方向()。这很可能是电容式触摸屏的局限性。

基于图像处理的基于触摸表面的 FTIR(受抑全内反射)或 DI(漫射照明)等方法已显示可提供更丰富的触摸交互数据。但据我们所知,这些方法都不适用于移动技术,也没有手持设备使用这些方法。

我们很沮丧地看到无法在手持设备上追求这些指标的可能性。

编辑:我最近通过我的同学发现,当您在开发人员设置下激活 Input>Pointer Location 时,三星生产的 Google Nexus 10 会显示一个带方向线的椭圆。

这向我表明,某些设备确实会提供 getTouchMinor 和 getTouchMajor 以及方向。 (或相同功能的历史版本)。我自己没有机会为设备编写任何代码,但这似乎是合理的。

关于android - onTouch MotionEvent getTouchMinor 和 getTouchMajor 总是得到完全相同的数字结果,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22032486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com