2011-08-30 70 views
3

比方说,我想在我的应用中使用缩放图像查看 是否可以在支持多点触控(API 7+)的手机上添加多点触控事件监听器,而在旧手机上显示缩放按钮?在支持的设备上的Android多点触摸

这可以在单个版本的应用程序中完成,还是需要多个应用程序版本和多个APK?

+0

是的,但你必须使用反射 – ingsaurabh

回答

9

你不会在这种情况下,需要多个APK。

您可以在代码检查多点触控的可用性:

if (Integer.parseInt(Build.VERSION.SDK) >= 7) { 
    PackageManager pm = context.getPackageManager(); 
    boolean hasMultitouch = 
     pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH); 
    if (hasMultitouch) { 
     // set multitouch event listeners 
    } else { 
     // set zoom buttons 
    } 
} else { 
    // set zoom buttons 
} 

你可以从你的活动(服​​务)PackageManager没有使用contextPackageManager pm = getPackageManager();

有三种类型的多点触控的,你可以检查。

Upd:您必须在多点触控可用性检查之前检查API版本。 FEATURE_TOUCHSCREEN_MULTITOUCH仅适用于API 7.我更新了代码示例。

+0

当我找到多点触控可用时,我会做什么?当我在代码中使用多点触控API 7方法和类时,应用程序不会在API 4上崩溃吗? – Axarydax

+0

它当然会崩溃,但它不需要在API 4上使用多点触控API 7方法。您已经提出了解决方案:如果不支持多点触控,请不要使用它并显示缩放按钮。 –

+0

,但代码将使用API​​ 7方法进行编译,API 4设备上会发生什么?他们不会拒绝安装该应用程序吗? – Axarydax

0

您可以在应用程序启动时查看您的api级别,并在此信息上设置正确的侦听器和按钮。

可能this site是有用的

您例如:

if(Integer.parseInt(Build.VERSION.SDK) >= 7) 
    { 
     //add multi touch listeners 
    } 
    else 
    { 
     // add zoom buttons 
    } 
+0

我认为,只是检查API级别是不够的。有API 7+的设备,但没有多点触控。 –