Android 多点触控令人头疼

标签 android touchscreen

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

根据 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/

相关文章:

android - 当我开始使用来自回收器项目的共享元素进行转换时,出现内存泄漏

Android waveshare 触摸屏

android - Android 上的触摸屏

javascript - 在初始悬停触发点击后,有没有办法解决 "reset"移动 Webkit 的伪悬停行为?

android - 单击 ListView 中的特定项目时,如何将 ListView 的选中项目框的颜色设置为绿色以外的其他颜色?

android - 可以创建与 weinre 和 app brakes 的连接

c# - 如何在 WPF 应用程序的触摸屏上自然滚动列表框?

c# - 如何区分触摸屏和普通触摸屏?

android - 如何在 android 的 DatePicker 中将默认语言环境设置为英语?

android - 双启动 - 手机上的最新 2 "original"Android 和 iPhone 版本