web-dev-qa-db-ja.com

さまざまな解像度で使用するためのドロアブルフォルダーの設定

アプリで使用する必要があるアイコンごとに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" />
25
Amanni

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
102
Renjith
The problem is My Nexus 7 (1280 x 800) and galaxy s2 (800 x 480) seem to use the resources in drawable-hdpi

nexus 7240dpiのようなデバイスに依存します。これはhdpiデバイスであり、samsungtab 2 mdpiデバイスであるため、mdpiから同じドロアブルを取得します。

1
Abhijit Chakra

リソースにConfiguration qualifiersを使用してみてください。これがベストプラクティスです。 res/drawable-normal-hdpi-port/icon.pngが好きです。

参照リンク: 構成修飾子

ありがとう。

1
user744881