1. ホーム
  2. アンドロイド

[解決済み】ImageViewでアスペクト比を維持したまま画像を拡大縮小する方法

2022-03-23 22:42:16

質問

Androidで、私は ImageView 's layout_width になります。 fill_parent (携帯電話の幅をいっぱいに使ってしまう)。

に貼った画像が ImageView よりも大きいので layout_width Androidは拡大縮小しますよね?しかし、高さはどうでしょうか?Androidが画像を拡大縮小するとき、アスペクト比は維持されるのでしょうか?

の上下に余白があることがわかりました。 ImageView よりも大きな画像を Android で拡大縮小した場合、その画像は ImageView . それは本当ですか?もしそうなら、どうすればその空白をなくすことができますか?

解決方法は?

  1. はい、デフォルトでは、Androidは画像をImageViewに合わせて縮小し、アスペクト比を維持します。ただし、ImageViewに画像を設定する際には、必ず android:src="..." ではなく android:background="..." . src= はアスペクト比を維持したまま画像を拡大縮小しますが background= を拡大縮小します。 は、ImageViewのサイズにぴったり合うように画像を歪ませます。(背景とソースを同時に使うことができるので、1つのImageViewだけを使ってメイン画像の周りにフレームを表示させるような場合に便利です)

  2. また android:adjustViewBounds を使用すると、再スケールされた画像に合わせてImageViewのサイズを変更させることができます。例えば、通常正方形のImageViewに長方形の画像がある場合、adjustViewBounds=trueを指定すると、ImageViewも長方形にリサイズされます。これは、他のViewがImageViewの周りにどのようにレイアウトされるかに影響します。

    それから、Samuh が書いているように、デフォルトで画像を拡大縮小する方法を android:scaleType パラメータを使用します。ところで、この仕組みを知る最も簡単な方法は、自分で少し実験してみることです。ただ、Eclipseのプレビューは通常間違っているので、エミュレータ自体(または実際の電話機)でレイアウトを見ることを忘れないでください。