ImageViewのサイズがwrap_contentじゃない前提。
- 絵、写真 → FIT_CENTER
- 9パッチ画像 → FIT_XY
- スプラッシュ → CENTER_CROP
以下補足。読むと秒では決まらない。
よく使うもの
画像は正方形のImageViewに横長の画像をセットした場合のイメージ。
FIT_CENTER
- 縦横比保持
- 切り取られず、画像全体が表示される
- ImageViewにちょうど収まるよう拡大・縮小される
- ImageViewの全体は画像で埋まらず、隙間ができる
画像の縦横比を維持したまま、画像全体がImageViewに収まる最大サイズで、Viewの中心に画像を表示する。
Viewと画像の間に、縦か横どちらか隙間が空く。
縦横比保持で画像全体が表示されるので、絵や写真を表示するには一番無難なパターン。
画像全体がImageViewに収まるように表示するので、場合によっては結構小さくなる。
CENTER_CROP
- 縦横比保持
- 画像の縦横どちらが切り取られる
- ImageViewの全体を埋めるよう拡大・縮小される
画像の縦横比を維持したまま、縦横どちらかがImageViewに収まる最大サイズで、ImageViewの中心に画像を表示する。
画像はImageViewより大きなサイズになり、Viewに収まりきらない縦か横どちらかは、画像のViewにおさまらない部分がクロップ(切り取り)される。
起動スプラッシュなど、特定の範囲を隙間なく画像で埋めたい場合に使える。
FIT_XY
- 縦横比は保持されない
- 一部が切り取られず、画像全体が表示される
- ImageViewの全体を埋めるよう拡大・縮小される
ImageViewのサイズに合わせて画像を拡大・縮小して表示する。
9パッチを適用した背景画像などに使用する。
縦横比が崩れるため、写真や絵には使えない。
あまり使わないもの
CENTER
ImageViewの中央に、拡大縮小なしで画像を表示。
拡大縮小したくなければこれだが、拡大縮小するケースの方が多いのでそんなに使わない。
CENTER_INSIDE
FIT_CENTERと似ているが、こちらは拡大されない。(縮小はされる)
拡大されないので、画像がImageViewより小さいと隙間が空く。
ほとんどの場合拡大されるFIT_CENTERの方が有用なので、あまり使わない。
FIT_START、FIT_END
縦横比保持で、左上か右下に寄せる。
たまに使うかもしれない程度。
MATRIX
Image Matrix を使って行列変換するときに指定。
画像を変形や回転させる場合に使えるが、理系でないとピンとこないかもしれない。
補足
scaleTypeについてはこちらが詳しい。
https://akira-watson.com/android/imageview_scaletype.html