あなたが提供していない画像をスケーリングするときに Android が何をしているのかを誤解していると思います。Android ドキュメントの状態:
デフォルトでは、Android はビットマップ ドローアブル (.png、.jpg、および .gif ファイル) と Nine-Patch ドローアブル (.9.png ファイル) をスケーリングして、各デバイスで適切な物理サイズでレンダリングします。たとえば、アプリケーションがベースラインの中程度の画面密度 (mdpi) に対してのみビットマップ ドローアブルを提供する場合、システムは高密度画面では拡大し、低密度画面では縮小します。このスケーリングにより、ビットマップにアーティファクトが発生する可能性があります。ビットマップが最高の状態で表示されるようにするには、画面密度ごとに異なる解像度の代替バージョンを含める必要があります。
これが意味することは、画像の代替密度バージョンを提供しない場合、Android は提供されたものを使用して不足しているもの (作成された正しい比例サイズ) を埋めますが、画像の品質がいくらか犠牲になるということです。 Android は、Photoshop のように画像を拡大縮小するつもりはありません。アプリケーションのサイズが気になる場合は、.apk を小さくするために、特定の密度のバージョンを省略することによる画質の低下が許容できるトレードオフであるかどうかを検討できます。
したがって、画像を元のサイズよりも大きくしたり小さくしたりする必要がない限り、#1 と #2 は両方とも を使用できwrap_content
、どちらも画像のサイズを手動で設定する必要はありません (その場合は、右側に画像を作成するだけです)。サイズ)。#1もレイアウト作業を必要とせず、必要としません。#2については、画像をいくつかのサイズで保存することは、それほど余分な作業ではありません.
私は個人的に次のルールに従います。
- すべての密度の画像を作成します(
ldpi
/ tvdpi
-デバイスが少なすぎることを除いて、画質が低下しても問題ありません)。
wrap_content
必要に応じてとを画像に使用match_parent
します。
dp
サイズが保証されない、実行時にダウンロードされるイメージにのみ使用します。