web-dev-qa-db-ja.com

ImageView.setBackgroundResourceとImageView.setImageResourceの違いは何ですか?

画像を設定する際にこれらのさまざまなアプローチを見てきましたが、違いはわかりません。

なぜ2つの方法があるのですか?

20
Lukap

setBackgroundResourceは、ImageViewの背景を設定するためのものです。
setImageResourceは、ImageViewのsrcイメージを設定するためのものです。与えられた:

ImageView iv = new ImageView(this);

次に:

iv.setBackgroundResource(R.drawable.imagedata);

背景全体の画像にフィットします。つまり、画像サイズが小さすぎる場合でも、画像を引き伸ばして背景全体を塗りつぶします。

imageView.setImageResource(R.drawable.imagedata);

ImageViewの画像のサイズのみを占有します。そのためにも設定したい

Android:layout_width="wrap_content"
Android:layout_height="wrap_content"

あなたのImageViewのために。画像のサイズがImageViewよりも小さい場合、残りの境界線は空白のままになり、背景が表示されます。

41
Dimitris Makris

SetBackdroundResourceは、イメージビューの背景に設定するドローアブルまたはカラー用であり、setImageResourceはその上に表示するようなものです。

したがって、setImageResourceは、imageviewの前面にリソースを追加するためのものです。この例を試して、違いを見てください。 Androidギャラリー、ImageViewの例 。これは、裏面(setBackgroundResource)と表面(setImageResource)の2層効果です。

3
user370305

メソッド setBackgroundResource() はすべてのビューに属します。メソッド setImageResource()ImageViewにのみ属します。両方を設定できます。

_imageView.setBackgroundResource(R.drawable.sky);
imageView.setImageResource(R.drawable.balloons);
_

enter image description here

setBackgroundResource()メソッドを使用すると、画像の幅と高さがビューのサイズに合わせて引き伸ばされます。 setImageResource()メソッドは、画像のアスペクト比を維持します。

私のより完全な答えは ここ です。

2
Suragch

setBackgroundResourceは、ImageViewの背景画像を設定します。 XML属性は次のとおりです。Android:background

setImageResourceは、ImageViewに表示される画像を設定します。 XML属性は次のとおりです。Android:src

0