Posted at

Androidで画像の縦横比を保ったまま画面幅いっぱいに表示する

よく忘れてその度にググるのでメモ。


条件


  • 画像はバナー系の、横幅が長いもの

  • ImageViewで表示

  • LinerLayout (vertical) > ImageView という構造


問題

<ImageView

android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/banner">

だいたいこんな感じのImageViewがあるとき、ImageView自体は画面幅いっぱいに広がるけれど、表示される画像はちんまりしている。

おそらく、バナー画像の高さが小さいため、それに合わせてImageViewの高さが決定し、バナー画像のアスペクト比を保ったまま表示するためにバナー画像の横幅を縮小されてしまったのが原因。


解決

<ImageView

android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/banner"
android:adjustViewBounds="true">

android:adjustViewBoundstrue にします。

ImageViewの境界が、表示内容(バナー画像)のアスペクト比に比例するようになります。


あわせて読みたい