2012-03-23 3 views
-1

私は主に携帯電話で使用されるが、一部のユーザーはタブレットで使用するアプリを書いている。タブレットユーザーのために、いくつかの追加機能を設定したいと思います。私は電話でそれをテストしています(ギャラクシーS携帯電話 - X 800 480)とタブレット(ギャラクシータブ10.1" - 800×1280)。。。。。。。次のコードを使用してタブレット固有の動作を行う。それはSCREENLAYOUT_SIZEですか、私ですか?

if ((getResources().getConfiguration().screenLayout &  
     Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) {  
    Toast.makeText(this, "Tablet",Toast.LENGTH_LONG).show(); 

} 
else if ((getResources().getConfiguration().screenLayout & 
     Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL) {  
    Toast.makeText(this, "Phone" , Toast.LENGTH_LONG).show(); 
} 
else { 
    Toast.makeText(this, "Neither" , Toast.LENGTH_LONG).show(); 
} 

電話「携帯電話」やタブレットは「どちらも」として起動しますとして起動します。しかし、the Android documentationがSCREENLAYOUT_SIZE_LARGEであることを言う「少なくとも約480×640 DP単位で。」

ところで、getResources()。getConfiguration()にタブレットはscreenWidthDpが1280で、screenHeightDpが752であると言います。それでタブレットが検出されないのは間違っていますか?

ありがとうございます。

答えて

1

私の銀河のタブでちょうどテスト: あなたはConfiguration.SCREENLAYOUT_SIZE_XLARGEも知っておく必要があります。

+0

XLARGEでコンパイルエラーが発生しました - いつ導入されましたか? – user316117

+0

ハニカムだと思います。代わりに定数を使用することができます:4(0x00000004) – Renard

+0

優秀(0x00000004)作品!ありがとうございました。 – user316117

関連する問題