LoginSignup
65
43

More than 5 years have passed since last update.

[Android]ImageViewのscaleTypeを秒で決める

Last updated at Posted at 2018-04-11

ImageViewのサイズがwrap_contentじゃない前提。

  • 絵、写真 → FIT_CENTER
  • 9パッチ画像 → FIT_XY
  • スプラッシュ → CENTER_CROP

以下補足。読むと秒では決まらない。

よく使うもの

画像は正方形のImageViewに横長の画像をセットした場合のイメージ。

FIT_CENTER

FitCenter.png

  • 縦横比保持
  • 切り取られず、画像全体が表示される
  • ImageViewにちょうど収まるよう拡大・縮小される
  • ImageViewの全体は画像で埋まらず、隙間ができる

画像の縦横比を維持したまま、画像全体がImageViewに収まる最大サイズで、Viewの中心に画像を表示する。
Viewと画像の間に、縦か横どちらか隙間が空く。

縦横比保持で画像全体が表示されるので、絵や写真を表示するには一番無難なパターン。
画像全体がImageViewに収まるように表示するので、場合によっては結構小さくなる。

CENTER_CROP

CenterCrop.png

  • 縦横比保持
  • 画像の縦横どちらが切り取られる
  • ImageViewの全体を埋めるよう拡大・縮小される

画像の縦横比を維持したまま、縦横どちらかがImageViewに収まる最大サイズで、ImageViewの中心に画像を表示する。
画像はImageViewより大きなサイズになり、Viewに収まりきらない縦か横どちらかは、画像のViewにおさまらない部分がクロップ(切り取り)される。
起動スプラッシュなど、特定の範囲を隙間なく画像で埋めたい場合に使える。

FIT_XY

fitXY.png

  • 縦横比は保持されない
  • 一部が切り取られず、画像全体が表示される
  • 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

65
43
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
65
43