2016-10-13 15 views
1

同じ解像度とPPIを持つ2つのAndroidデバイスがあります。しかし、Samsung Tab 4の1つのデバイスに対してアプリケーションを実行すると、リソースは通常のレイアウトフォルダから呼び出されます。しかし、サムスンJマックスである別のデバイスでは、それはlayout-600フォルダからです。なぜ、これらのデバイスで異なる動作をしていますか?どんな提案も大歓迎です。異なるレイアウトフォルダから呼び出されるAndroidリソース

答えて

0

layout-600600修飾子は、画面のサイズがdpであり、必ずしもDPIまたは画面解像度がピクセルである必要はありません。画面のアスペクト比や対角線サイズなどの他の要因も考慮されます。

あなたは、プログラムによってこのpostで命令を使用してdpであなたの画面の大きさを決定することができます。

Configuration configuration = yourActivity.getResources().getConfiguration(); 
int screenWidthDp = configuration.screenWidthDp; //The current width of the available screen space, in dp units, corresponding to screen width resource qualifier. 

私はscreenWidthDpの値は、それらのデバイス間で異なっていることを賭けます。

0

これは、デバイスからデバイスまでのAndroidデバイスの密度ピクセル(dp)に依存し、そのAndroidデバイスに応じて自動的にどのレイアウトフォルダからUIが表示されるかを検出します。ここに小さな情報があります:

異なる画面サイズのUIを設計するときには、それぞれのデザインに最低限のスペースが必要であることがわかります。 したがって、上記の画面サイズの一般化された はそれぞれ、システムによって と定義された関連最小解像度を持ちます。これらの最小サイズは「dp」単位で表示されます。つまり、レイアウトを定義するときに同じ単位の を使用する必要があります。 は、画面密度の変更を心配する必要がありません。

XLARGEスクリーンは、少なくとも960dp X 720dp

大画面少なくとも 640dp X 480dp

通常画面である少なくとも470dp X 320dp

小画面 、少なくとも426dp X 320dpされています

6つの一般化された密度のセット:

LDPI(低)〜120dpi

MDPI(中) 〜160dpi

hdpi(高)〜240dpi

xhdpi(超高)〜320dpi

xxhdpi (細胞外超高画質)〜480dpi

xxxhdpi(超過超高画質)〜640dpi

詳細情報についてはGoogleドキュメントをお読みください:https://developer.android.com/guide/practices/screens_support.html

1

あなたはThis Google Articleを確認してください。

この場合、サムスンはもう少し驚きがあります。算術演算を行うと、その画面には170 DPIがあり、これはAndroidデバイスの中で最も密度の高いものではありません。それでも、それは "hdpi"(そして "大きな"画面サイズを持っている)と自分自身を宣言します。理由は簡単です:それはそのように見えます。

つまり、Tabのppiは170です(220ppiではありません)。その結果、幅800、170ppi - > 800 /(170/160)> 600です。そのため、Samsung Tab 4リソースは "layout-sw600dp"フォルダからのものです

関連する問題