繁体   English   中英

Android多点触控头痛

[英]Android multi-touch headaches

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

根据之前回答的问题,我应该使用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 1.x / 2.x设备上的错误多点触控实现引起的

http://code.google.com/p/android-multitouch-controller/

您提到的问题解释如下:

注意:在使用Synaptics或类似Synaptics的“2x1D”传感器(G1,MyTouch,Droid,Nexus One)而不是真正的2D传感器(如HTC Incredible或HTC EVO 4G)的旧式触摸屏设备上,旋转是古怪的。 当两个点在X或Y中靠近在一起时,“轴捕捉”导致古怪的行为,而“纵坐标混淆”,其中(x1,y1)和(x2,y2)混淆了(x1,y2)和(x2, Y1)。 除了将两个手指保持在相同的两个相对象限(即将它们保持在前导或尾随对角线上)或不允许在这些设备上旋转之外,没有办法解决这个问题。 (尽管Web上存在错误信息,但也没有可以解决此问题的固件或软件更新,这是一个硬件限制。希望所有较新的手机都有真正的2D触摸传感器。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM