Android多点触控头痛

Android多点触控头痛,android,touchscreen,Android,Touchscreen,我在处理多点触摸事件时遇到了一个真正的问题。基本上,我需要检测是否有人在触摸其他地方的屏幕时松开了手指 根据前面回答的问题,我应该使用MotionEvent.ACTION\u POINTER\u UP MotionEvent.ACTION\u UP 据我所知,以下代码应该会告诉我是否抬起了手指: int action = event.getActionMasked(); mCurUp = ( action == MotionEvent.ACTION_UP ) || ( actio

我在处理多点触摸事件时遇到了一个真正的问题。基本上,我需要检测是否有人在触摸其他地方的屏幕时松开了手指

根据前面回答的问题,我应该使用MotionEvent.ACTION\u POINTER\u UP MotionEvent.ACTION\u UP

据我所知,以下代码应该会告诉我是否抬起了手指:

    int action = event.getActionMasked();
    mCurUp = ( action == MotionEvent.ACTION_UP ) || ( action == MotionEvent.ACTION_POINTER_UP );
我在实践中看到的是,这在某些时候是有效的。如果我真的很小心,我可以在屏幕上握住我的左手手指,举起我的右手手指,就不会触发任何事件!通常在某个时候,我的左手手指会摆动,产生一个动作事件。在这一点上,它生成了一个事件(262),我认为它与动作\u指针\u UP相关


所以我想知道是否有其他人看到了这一点,我也怀疑这可能是HTC Desire上臭名昭著的劣质触摸屏造成的。或者我做了一些根本错误的事情。有没有人有一些经过测试的代码可以可靠地检测到手指从触摸屏上抬起的情况?

这种奇怪的行为可能是由您的设备(HTC Desire==Nexus One screen)引起的,而不是由您的代码引起的

你知道虽然Android支持多点触摸,但不是每一部手机都支持真正的多点触摸吗

读一读这个

还有这个


干杯

这门课似乎为您的问题以及一些安卓1.x/2.x设备上错误的多点触控实现所导致的许多其他问题提供了解决方案

你提到的问题解释如下:

注意:在使用Synaptics或Synaptics的老式触摸屏设备上,旋转是很奇怪的 像“2x1D”传感器(G1、MyTouch、Droid、NexusOne)这样的突触,而不是真正的2D 像HTC难以置信或HTC EVO 4G这样的传感器。这种古怪的行为是由于 当两个点在X或Y方向接近时的“轴捕捉”和“纵坐标” 混淆“,其中(x1,y1)和(x2,y2)被混淆为(x1,y2)和(x2,y1)。 除了将两个手指保持在同一两根手指上之外,没有其他方法可以解决这个问题 相对象限(即,将它们保持在前导或尾随对角线上),或 不允许在这些设备上旋转。 (尽管网络上存在错误信息,但也没有固件或软件 更新,可以解决这个问题,这是一个硬件限制。希望所有 较新的手机将配备真正的2D触摸传感器。)


是的,我知道触摸屏不是很好(至少在mult touch方面)。