5

同じ sw800dp 最小幅の ICS で異なる dpi に異なるリソースを配置するにはどうすればよいですか?

詳細: ICS 4.0.4 を搭載した 2 つのタブレットがあります。最初の解像度は 1280x800 で、密度は mdpi (160) です。2 番目の解像度は 1920x1200 で、密度は hdpi (240) です。したがって、最小幅に関しては、両方とも同じ sw800dp 修飾子を持ちますが、mdpi/hdpi 密度修飾子は異なります。

これら 2 つの解像度には、異なるレイアウトと画像が必要です。

そこで、次の 2 つのディレクトリを作成しました。

レイアウト-sw800dp-mdpi

レイアウト-sw800dp-hdpi

各デバイスは、最小の幅と密度に応じて独自のディレクトリを選択すると考えました。しかし、どちらも同じ sw800dp-hdpi フォルダーからリソースを取得します!

私は非常に混乱しており、その 2 つの異なる解像度のリソースを分離する方法がわかりません。

どんな助けでも本当に感謝しています。前もって感謝します。

4

2 に答える 2

2

/layout/sw800dp にある同じレイアウトを使用し、 /drawable-mdpi 、 /drawable-hdpi を作成してカスタム ドローアブルを配置する必要があります。システムは同じレイアウトを使用して、各デバイスに正しいものを適用します。これらのデバイスは、同様のサイズとアスペクトを持つ必要があります...

于 2012-11-28T16:50:24.167 に答える
1

これを使用して密度を取得します。

float density = getBaseContext().getResources().getDisplayMetrics().density;

画面の高さ:

int h = 0;

Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();

h = (int) display.getHeight();

画面幅:

int w = 0;

Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();

w = (int) display.getWidth()

その後、正しいリソースを選択するだけです。

于 2012-09-06T21:08:54.907 に答える