2011-08-30 11 views
3

ズームアプリの画像表示をズーム としたい場合、マルチタッチ対応の携帯電話にマルチタッチイベント(API 7+)を追加することが可能ですズームボタンを表示しますか?サポートされている端末のAndroidマルチタッチ

これはアプリの1つのバージョンで実行できますか、複数のアプリバージョンと複数の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 
} 

あなたはcontextを使用せずに、あなたの活動(サービス)からPackageManagerを取得することができます。PackageManager pm = getPackageManager();

あなたがチェックできるマルチタッチの3つのタイプがあります。 。

更新:マルチタッチアベイラビリティチェックを行う前に、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以上でマルチタッチのないデバイスがあります。 –

関連する問題