drawable-hdpiの同じピクセル寸法の画像は、drawable-mdpiフォルダーで同じまたは異なるレンダリングを行いますか?
3 に答える
はい、レンダリングが異なります。
より高密度の画像を提供するたびに、それらの画像は密度を考慮してピクセル単位でより大きなサイズにする必要がありますが、dpでは同じサイズで表示されます。dpをピクセルに変換するには、dpの値にデバイスの密度乗数を掛けます。mdpiは1.0、hdpiは1.5、xhdpiは2.0です。したがって、hdpiの100dpは実際には150pxです。
100x100ピクセルのdrawable-mdpi/foo.pngの画像を持つアプリは、150x150ピクセルのdrawable-hdpi/foo.pngの同じ画像の高密度バージョンを提供します。
画像が100x100ピクセルの場合、-mdpiディレクトリに配置すると、中程度の密度であると解釈されます。中密度デバイスでは、1:1でレンダリングされます。同じことが高密度デバイスなどの-hdpiアセットにも当てはまります。システムがデバイス自体の密度とは異なる密度バケットのアセットを使用する場合に違いが生じます。これは、デバイスのネイティブ密度のアセットが利用できない場合に発生します。
画像が100x100ピクセルで、-hdpiディレクトリに配置されている場合、高密度であると解釈されます。中密度デバイスにそのイメージの対応する-mdpiバージョンがない場合、中密度デバイスはイメージを縮小します。mdpiの密度乗数は1、hdpiの密度乗数は1.5です。1 / 1.5=0.66。画像は元のサイズの2/3に縮小されます。
あなたは本当に複数の画面のサポートを読む必要があります。特に、代替レイアウトとドローアブル(具体的には代替ドローアブル)の設計に関するセクション。
1つのドローアブルを提供すると、Androidは正規化された画面(ldpi、mdpi、hdpiなど)に一致するようにスケーリングしますが、関連するピクセル密度で独自のドローアブルを作成し、関連するドローアブルフォルダーに配置することをお勧めします。
実際、コードは電話の容量に最適なフォルダを探します。