1. ホーム
  2. android

[解決済み] Androidの画像・アセットサイズについて

2023-04-21 15:37:48

質問

アプリの画像アセットについて、疑問を解決したいのですが。

xmlファイルで[image view]の高さが50dipであると指定した場合、[image view]の高さは50dipになるのでしょうか?

resources フォルダからどのタイプのスクリーンを選択すればよいでしょうか。

drawable, hdpi, ldpi, mdpi, xhdpi,

で高さ50pxの画像を表示します。

と、ベース画像に比べて大きいサイズ、小さいサイズの画像の割合はどうなっているのでしょうか。

iOSのように、@2xは文字通り2倍の大きさの画像で、プログラム的には通常の大きさと言うことですね。

ありがとうございます。

どのように解決するのですか?

mdpi は基準密度、つまり、1pxで mdpi での1pxは1dipに相当します。資産のスケーリングのための比率は

ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi
0.75 | 1    | 1.33  | 1.5  | 2     | 3      | 4

については、特に気にする必要はありませんが tvdpi を気にする必要はありませんが、Google TV や初代 Nexus 7 向けに特別な開発をしているのであれば、Google も単純に hdpi アセットを使用することを推奨しています。

これが意味するところは、48dip のイメージを作成する場合、最大で xxhdpi resolution をサポートする場合、144px の画像 (xxxhdpi のネイティブ アセットが必要な場合は 192px) から始めて、次のような画像を作成して密度を調整する必要があります。

ldpi    | mdpi    | tvdpi    | hdpi    | xhdpi     | xxhdpi    | xxxhdpi
36 x 36 | 48 x 48 | 64 x 64  | 72 x 72 | 96 x 96   | 144 x 144 | 192 x 192

そして、これらはどのデバイスでもほぼ同じサイズで表示されるはずです。ただし、これらを密度専用のフォルダ(例えば drawable-xhdpi , drawable-hdpi など)

参考までに、これらの画素密度は

ldpi  | mdpi  | tvdpi  | hdpi  | xhdpi  | xxhdpi  | xxxhdpi
120   | 160   | 213    | 240   | 320    | 480     | 640