我在尝试处理多点触摸事件时遇到了一个真正的问题。基本上我需要检测是否有人在其他地方触摸屏幕时松开了手指。
根据 this以前回答的问题,我应该使用 MotionEvent.ACTION_POINTER_UP MotionEvent.ACTION_UP。
据我所知,下面的代码应该会告诉我手指是否被抬起:
int action = event.getActionMasked();
mCurUp = ( action == MotionEvent.ACTION_UP ) || ( action == MotionEvent.ACTION_POINTER_UP );
我在实践中看到的是,这在一些的时候是有效的。如果我真的很小心,我可以将左手指放在屏幕上并抬起右手指,根本不会触发任何事件!通常在某个时候我的左手手指会晃动,产生一个ACTION_MOVE 事件。此时它会生成一个事件 (262),我认为它与 ACTION_POINTER_UP
相关所以我想知道是否有其他人看到过这个,我也怀疑这可能是我的 HTC Desire 上臭名昭著的糟糕触摸屏导致的。或者也许我做的事情从根本上是错误的。有没有人有一些经过测试的代码可以可靠地检测手指是否离开触摸屏?
最佳答案
奇怪的行为可能是由您的设备(HTC Desire == Nexus One 屏幕)引起的,而不是您的代码引起的。
你知道虽然Android支持多点触控,但并不是所有的手机都支持真正的多点触控吗?
读一读
http://androidandme.com/2010/03/news/is-multitouch-broken-on-the-nexus-one/
还有这个
http://groups.google.com/group/android-developers/msg/70e9dd235d519955
干杯
关于Android 多点触控令人头疼,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5068315/