どっこと備忘録群

アウトプットしないとインプットできない私が Androidアプリ開発をメインとした備忘録を載せています。

Imageコンポーサブル(Jetpack Compose)を扱う

Imageコンポーザブルは、画像やイメージを表示するためのコンポーサブルでAndroid ViewのImageViewに相当する。

ImageViewで重要だったscaleTypeは、ImageコンポーサブルではcontentScaleというパラメータで同様に実現できる。

Imageコンポーザブルの使い方チートシート

最低限必要なパラメータは以下の通りです。

Image(
  painter = painterResource(id = R.drawable.dog), // リソースから画像を読み込む
  contentDescription = stringResource(id = R.string.dog_content_description) // 画像の説明文
)

contentDescriptionはアクセシビリティのために非常に重要で、読み上げ機能などで使われる。

contentScaleの種類

contentScaleにはいくつかの設定があり、それぞれ画像の表示方法を調整します。

  • ContentScale.Fit: アスペクト比を維持したまま、表示領域に収まるように画像を拡大・縮小する。ImageViewfitCenterに相当。
  • ContentScale.Crop: 画像を拡大し、表示領域を完全に埋めるように表示する。はみ出した部分は切り取られる。
  • ContentScale.FillHeight: アスペクト比を維持したまま、高さを表示領域に合わせる。
  • ContentScale.FillWidth: アスペクト比を維持したまま、幅を表示領域に合わせる。
  • ContentScale.FillBounds: 画像のアスペクト比を無視して、表示領域いっぱいに画像を拡大・縮小する。画像が歪む可能性がある。ImageViewfitXYに相当。
  • ContentScale.Inside: アスペクト比を維持したまま画像を縮小する(拡大はしない。)
  • ContentScale.None: 画像の元のサイズとアスペクト比を維持。ImageViewcenterに相当。

最終更新: 2025.9.23