2017-02-25 3 views
0

だから私は値/ dimens 値-xxhdpi/dimens理解アンドロイド値/ dimens

<dimen name="rv_height">260dp</dimen> 
<dimen name="rv_width">320dp</dimen> 
& 値/ dimens-MDPI

<dimen name="rv_height">220dp</dimen> 
<dimen name="rv_width">280dp</dimen> 

と次に次のように置きます

私がこれを実行すると、480 x 800 hdpi API 17エミュレータはなぜですかxxhdpiフォルダから値をロードしてください。dimenまたはdimens-mdpi folder?

答えて

2

複数 画面用のユーザー・インタフェースを設計する方法を簡素化するためにOfficial docs

によると、Androidはに実際の画面サイズと 密度の範囲を分割:〜

LDPI(低いです) 120dpi

MDPI(中)〜160dpi

hdpi(高)〜240dpi

xhdpi(超高)〜320dpi

xxhdpi(超超高)〜480dpi

xxxhdpi(超超超高)〜640dpi

編集:

私はあなたにそれを説明しようとします:

hdpiの480ピクセルのデバイスは、docsのように "240 dpiの画面では、1 dpは1.5物理ピクセルに等しい"ため、320 dpを持ちます。 400px /1.5 = 320dpを意味する。

さて、あなたはシステム、しかしドキュメント

に応じ値/ dimens & 値/ dimens-MDPI & & 値-xxhdpi/dimens

と再びを持っています密度固有のリソース を探していて、密度固有のディレクトリでそれを見つけられない場合は、 となりませんデフォルトのリソースを使用します。代わりに、システムは、スケーリングの際により良い 結果を提供するために、 のうちの1つを他の密度特有のリソースの1つを使用することができる。たとえば、低密度の リソースを探しているときに利用できない場合、システムは簡単に 高密度リソースを低レベルに下げることができるため、リソースの高密度バージョン を縮小することを推奨します中密度のリソースを ファクタ0.75にスケーリングするのと比較して、密度が0.5倍、 であり、アーティファクトがより少ない。

結論:res-directoryが見つからない場合にデフォルトのディレクトリが常に使用されることは受領者ではありません。あなたのケースでは、高密度リソースを低密度にスケールダウンしています。

今はっきりしていることを願っています。

+0

あなたは私の質問に答えなかった。 – ThunderRoid

+0

実際には480dpiの画面密度のデバイスを実行していて、 'values-xxhdpi/dimens'というフォルダを作成しました。これはあなたのアプリケーションがこのフォルダにある値を使用することを意味します! –

+0

それはdpiではない解像度です、dpiはhdpiです – ThunderRoid

関連する問題