Android の ImageView.ScaleType
概要
ImageView.ScaleType を解説している記事は見かけますが、表で整理された内容を見かけないため整理します。
目次
参考情報
- [Android] ImageView画像をScreenのレイアウトにフィットさせるには
- 具体例を示した具体的な解説
解説
ScaleType | 縦横比 | 配置 | はみ出し | 隙間 | サイズ |
---|---|---|---|---|---|
CENTER | 維持 | 中央 | 有 | 両方向 | 元サイズ |
CENTER_CROP | 維持 | 中央 | 有 | 無 | 拡大のみ |
CENTER_INSIDE | 維持 | 中央 | 無 | 両方向 | 縮小のみ |
FIT_CENTER | 維持 | 中央 | 無 | 片方向 | 拡大/縮小 |
FIT_END | 維持 | 右下 | 無 | 片方向 | 拡大/縮小 |
FIT_START | 維持 | 左上 | 無 | 片方向 | 拡大/縮小 |
FIT_XY | 無視 | 中央 | 無 | 無 | 拡大/縮小 |
MATRIX | - | - | - | - | - |
縦横比に注目すると、FIX_XY のみが縦横比を無視して拡大/縮小します。他は、縦横比を維持します。
配置は、基本的に中央寄せです。FIT_END と FIT_START のみが中央以外に寄せます。日本では、END が右下、START が左上です。日本以外では、START が右になる場合もあるので、表の内容は日本の場合です。
CENTER は、元サイズのままであるため、View に収まらない範囲は View からはみ出ますし、View の範囲よりも小さい場合には View の枠と画像の間に隙間ができます。隙間は、縦と横の両方向にできる場合があります。
CENTER_CROP は、はみ出した部分を切り取ります。View の範囲より小さい場合には拡大するため、View の枠と画像の間に隙間ができません。
CENTER_INSIDE は、はみ出さないように縮小します。View の範囲より小さい場合には元サイズのままとなるため、View の枠と画像の間に隙間ができます。隙間は、縦と横の両方向にできる場合があります。
FIT_CENTER は、はみ出さない範囲で拡大/縮小します。縦と横のいずれかの方向が View の枠の幅と同じになるまで拡大します。そのため、隙間は、片方向だけにできます。FIT_END、FIT_START も同様です。