ImageView でアスペクト比を維持したまま画像を拡大縮小する方法 質問する

ImageView でアスペクト比を維持したまま画像を拡大縮小する方法 質問する

Android では、ImageViewを(携帯電話の全幅を占める)layout_widthとして定義しました。fill_parent

に配置した画像がImageViewより大きい場合layout_width、Android はそれを拡大縮小しますか? しかし、高さはどうですか? Android が画像を拡大縮小するとき、アスペクト比は維持されますか?

ImageViewAndroid が より大きい画像を拡大縮小すると、の上部と下部に空白ができることを発見しました。ImageViewこれは本当ですか? もし本当なら、その空白をなくすにはどうしたらいいですか?

ベストアンサー1

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

  2. また、ImageView のサイズを変更して、サイズを変更した画像に合わせることも必要ですandroid:adjustViewBounds。たとえば、通常は正方形の ImageView に長方形の画像がある場合、adjustViewBounds=true を指定すると、ImageView のサイズも長方形になります。これにより、他の View が ImageView の周囲にレイアウトされる方法も変わります。

    次に、Samuh が書いたように、パラメータを使用して、画像のデフォルトのスケーリング方法を変更できますandroid:scaleType。 ちなみに、これがどのように機能するかを知る最も簡単な方法は、自分で少し実験してみることです。 Eclipse のプレビューは通常間違っているため、エミュレーター自体 (または実際の電話) のレイアウトを確認することを忘れないでください。

おすすめ記事