画像が画面いっぱいに表示されるが、縦横比を維持し、中央に収まる画像ビューを作成するにはどうすればよいですか?
現在、電話の画面解像度よりも大きい大きな画像がありますが、解像度の高いデバイスではレターボックス化されると思われます
scaleType
トリックを行うのはどの組み合わせですか?
adjustViewBounds
値を使用して、画像の縦横比を維持することができます
<ImageView
android:id="@+id/metallicaImage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:adjustViewBounds="true"
android:src="@drawable/metallica" />
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitCenter" />
基本的な設定です。
私は以前にこれに遭遇しましたが、問題は、画像を拡大する必要がある場合(画面の幅が画像よりも大きい場合)、Androidが指定されたサイズを超えて画像を拡大しないことです。ただし、スケールダウンは問題なく機能します。
私はAspectRatioImageView
以下のように作成することになりました、うまくいきます。getIntrinsicWidth()
0を返すこととnullを返すことについてのコメントを必ず読んで、getDrawable()
それらの安全チェックをいくつか入れてください。