アプリで使用する必要があるアイコンごとに4つの異なるサイズがあります。問題は、Nexus 7(1280 x 800)とgalaxy s2(800 x 480)がdrawable-hdpiのリソースを使用しているように見えることです。 Nexusにdrawable-xhdpiのリソースを使用させ、10インチタブにdrawable-xxhdpiを使用させるにはどうすればよいですか。
マニフェストファイルにこれがあります
<supports-screens Android:resizeable="true"
Android:smallScreens="true"
Android:normalScreens="true"
Android:largeScreens="true"
Android:xlargeScreens="true"
Android:anyDensity="true" />
Nexusにdrawable-xhdpiのリソースを使用させ、10インチタブにdrawable-xxhdpiを使用させるにはどうすればよいですか?
できません。
修飾子hdpi,xhdpi,xxhdpi
は、画面のサイズではなく、デバイスの画面密度を表します。 公式ドキュメント から
画面密度
画面の物理的な領域内のピクセルの量。通常はdpi(インチあたりのドット数)と呼ばれます。たとえば、「低」密度の画面は、「通常」または「高」の密度の画面と比較して、特定の物理的領域内のピクセル数が少なくなります。簡単にするために、Androidはすべての実際の画面密度を低、中、高、超高の4つの一般化された密度にグループ化します。
タブレットもサポートしたい場合は、large, xlarge
修飾子。 Nexus 7はlarge-hdpi
tablet(技術的にはtvdpi
ですが、hdpi
から画像を取得します)。したがって、Nexus 7用の画像を配置する場合は、drawable-large-hdpi
そしてそこに画像を置きます。
注:これはNexus 7の特殊なケースです。Nexus7は7インチのタブレットであるにもかかわらず、1280 * 800。したがって、これはhdpi
デバイスです。ただし、通常の7インチデバイスの解像度は1024 * 600です。したがって、それらはmdpi
デバイスです。したがって、ドロウアブル修飾子は変更できます。 (私自身の経験から、最初にフォルダーdrawable-large-mdpi
7インチデバイスの場合、Nexus 7で確認します。画像に問題がない場合は、別のフォルダーを配置する必要はありません。特定のフォルダーが存在しない場合、Androidは最も近いフォルダーを確認し、デバイス画面用に最適化するため)
10インチタブレットの場合、これらはxlarge
デバイスであり、その密度はmdpi
からxhdpi
(Nexus 10)に変更できます。しかし、多くの解像度は1280 * 800であり、mdpi
デバイスです。
より良い方法は、次のドロアブルを配置することです
// for Phones
drawable-ldpi
drawable-mdpi
drawable-hdpi
//for 7 inch tablets
drawable-large-mdpi
drawable-large-hdpi(for Nexus 7)
// for 10 inch tablets
drawable-xlarge-mdpi
The problem is My Nexus 7 (1280 x 800) and galaxy s2 (800 x 480) seem to use the resources in drawable-hdpi
nexus 7
は240dpi
のようなデバイスに依存します。これはhdpi
デバイスであり、samsung
tab 2
mdpiデバイスであるため、mdpi
から同じドロアブルを取得します。
リソースにConfiguration qualifiers
を使用してみてください。これがベストプラクティスです。 res/drawable-normal-hdpi-port/icon.png
が好きです。
参照リンク: 構成修飾子
ありがとう。