web-dev-qa-db-ja.com

Android hdpi / mdpi / ldpi for Valuesフォルダ?

Androidでは、さまざまなサイズの画面/デバイスに対応するために、ドローアブルフォルダーにhdpi/mdpi/ldpiを定義できます。その同じサポートをValuesフォルダ(またはレイアウトフォルダ)にも適用できるかどうか疑問に思っていましたか?理由として、私は通常、マージンとパディングに適用する標準のdpサイズを保持する「sizes.xml」ファイルを定義しています。テキストのspサイズについても同じようにします。電話のdpiに基づいてこれらの値を調整したいと思います。

21
Jay Soyer

はい、res/フォルダーは「構成修飾子」を使用できます。したがって、たとえば、values-sw600dp-mdpi-land/フォルダ。

「設定修飾子の使用」を参照してください: http://developer.Android.com/guide/practices/screens_support.html#qualifiers

私は最初にGoogleのIOSchedアプリのサンプルコードを見て、これに気づきました。resフォルダーを見てください: https://github.com/google/iosched/tree/master/Android/src/main/ res

いくつか例を挙げると、「values-sw600dp-land」、「values-w400dp」、「values-v17」のフォルダーがあることがわかります。

26
Sam Dozor

はい、できます。ちょうどこのような:

res/values/dimens.xml(default)
res/values-ldpi/dimens.xml   (240x320 and nearer resolution)
res/values-mdpi/dimens.xml   (320x480 and nearer resolution)
res/values-hdpi/dimens.xml   (480x800, 540x960 and nearer resolution)
res/values-xhdpi/dimens.xml  (720x1280 - Samsung S3, Micromax Canvas HD, etc) 
res/values-xxhdpi/dimens.xml (1080x1920 - Samsung S4, HTC one, etc)
res/values-large/dimens.xml  (480x800)

res/values-large-mdpi/dimens.xml (600x1024)
res/values-sw600dp/dimens.xml  (600x1024)
res/values-sw720dp/dimens.xml  (800x1280)
res/values-xlarge-xhdpi/dimens.xml (2560x1600 - Nexus 10")
res/values-large-xhdpi/dimens.xml  (1200x1920 - Nexus 7"(latest))

(from: http://wiki.jikexueyuan.com/project/Android-actual-combat-skills/multi-resolution-adapting-common-directory.html 警告:リンクは中国語です!!!翻訳するには、ページを右クリックし、ポップアップメニューの[英語に翻訳]をクリックしてください。)

29
Kai Wang

一部のhdpiデバイスは、values-xhdpiから値を取得しますが、valuesフォルダーは、デバイスの解像度に基づいてさまざまなマージンとフォントサイズを設定するのに適しています。したがって、values-normal-hdpiを使用する代わりに、values-normal-xhdpiがより適切な答えです。

これを使用することで、値のフォルダに異なるdpsとサイズを設定して、電話とタブレットを非常に簡単にサポートすることで、異なるレイアウトフォルダを不要にすることもできます。

3
Mihir Shah

はい、標準の修飾子が何であるかに基づいて、使用するファイルを定義できます。たとえば、私のアプリの1つで、さまざまなサイズと方向のstyles.xmlファイルとstrings.xmlファイルを定義しましたが、すべて期待値values-large-hdpiやvalues-large-land-hdpiなどとして機能します。

0
MattC