完全独立地跟踪两个手指

时间:2014-12-30 13:31:16

标签: android multi-touch android-2.3-gingerbread

我正在开发一个应用程序,我可以同时按下2个按钮。我的手机有Android 2.3.7(Gingerbread API 10)。我一直在寻找信息,我发现我可以检查我的手机是否可以使用PackageManager完全独立地跟踪两根手指:

PackageManager pm = getPackageManager();
if (pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT))
    ShowToast("Distinct: Yes", Toast.LENGTH_LONG);
else
    ShowToast("Distinct: No", Toast.LENGTH_LONG);

这段代码告诉我没有。我的手机没有系统功能FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT。但是在我的手机中尝试“测试你的Android”应用程序我看到我的手机是,可以。在我的手机中,我可以执行类似这样的照片:https://lh4.ggpht.com/SERDbt6S4Iz4sdWMCJqlpcN2ZSJm4nBleXVSHFB9KIdphDCldhW9-LoPxInFPeky2g4=h900 另外,我测试了一些可以同时触摸2个按钮的应用程序。 问题是:我可以为手机做一些事情,一次识别2个按键,或者可以同时识别两个按键吗?

我在这里作为最后的手段问,因为我已经搜索了这个解决方案好几天了。

1 个答案:

答案 0 :(得分:0)

您可以在Android中跟踪两个或更多手指(并根据您的图像,您的手机支持它),您可以获得此触摸发生位置的屏幕坐标。触摸生成一个MotionEvent,从中您可以获得触摸的坐标。

要知道有多少手指触摸屏幕,请使用:

@Override
public boolean onTouchEvent(MotionEvent ev) {
    int count= ev.getPointerCount();

此外,要过滤MotionEvents以仅捕获按下手势,您可以使用MotionEvent.DOWN 在onTouchEvent()

case MotionEvent.ACTION_DOWN:
    //do something with the touch

http://developer.android.com/reference/android/view/MotionEvent.html#ACTION_DOWN

这些答案向您展示了捕获和使用MotionEvent的代码,并提供了指向教程的链接:

multiple-finger-input-for-android-development

我希望这就是你所要求的