Android の「マルチスクリーン サイズ」ドメインで、かなり些細な作業に苦労しています。
私が達成しようとしていること
画面の幅に合わせたレイアウトで、サイズが変更される 9 パッチの背景があります (常に十分な垂直方向のスペースがあるため、水平方向のみ)。ダミー画像は次のとおりです。
私の目標は、画面の解像度に応じて、さまざまなサイズのセットを使用して、可能な限り最高の解像度で画像を表示することです。320x45、480x67、600x87、720x101、縮小なし。私は非プログラム的な解決策を望んでいます。
上記の画像サイズの例は次のようになります。
- 3.7 インチの Nexus One (480 x 800) - 480 x 67 の画像が最適です。
- 4.7 インチ Galaxy Nexus (720 x 1280) - 720 x 101 の画像。
- 4.7 インチの Nexus 4 (768 x 1280) - 720 x 101 の画像を 768 ピクセルの幅いっぱいまで伸ばして 768 x 101 にします。
問題
dp
実際に利用可能なピクセルに基づいて画像を表示したい場合、Android リソース割り当て全体は s (密度に依存しないピクセル) を中心に展開します。
480x67 の画像を res/drawable-mdpi に割り当て、600x87 の画像を res/drawable-hdpi に割り当てると、画像は 480x800 の5.4 インチ ディスプレイ、つまり mdpi ディスプレイに正しく表示されます。システムは600x87 の画像を指定しますが、これは画面に収まりません。
オンライン ガイドsmallestWidth
に記載されているパラメータを試してみましたが、奇妙な結果が得られました。たとえば、3.7 インチ 480 x 800 ディスプレイ (hdpi) は drawable-sw320dp 画像を使用しますが、drawable-sw480dp リソースも利用可能です。
可能な限り最高の品質で伸縮可能で幅が一致する画像を割り当てる最良の方法は何ですか? プログラム以外の解決策はありませんか?
前もって感謝します!