画像を設定する際にこれらのさまざまなアプローチを見てきましたが、違いはわかりません。
なぜ2つの方法があるのですか?
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よりも小さい場合、残りの境界線は空白のままになり、背景が表示されます。
SetBackdroundResourceは、イメージビューの背景に設定するドローアブルまたはカラー用であり、setImageResourceはその上に表示するようなものです。
したがって、setImageResourceは、imageviewの前面にリソースを追加するためのものです。この例を試して、違いを見てください。 Androidギャラリー、ImageViewの例 。これは、裏面(setBackgroundResource)と表面(setImageResource)の2層効果です。
メソッド setBackgroundResource()
はすべてのビューに属します。メソッド setImageResource()
はImageView
にのみ属します。両方を設定できます。
_imageView.setBackgroundResource(R.drawable.sky);
imageView.setImageResource(R.drawable.balloons);
_
setBackgroundResource()
メソッドを使用すると、画像の幅と高さがビューのサイズに合わせて引き伸ばされます。 setImageResource()
メソッドは、画像のアスペクト比を維持します。
私のより完全な答えは ここ です。
setBackgroundResource
は、ImageViewの背景画像を設定します。 XML属性は次のとおりです。Android:background
setImageResource
は、ImageViewに表示される画像を設定します。 XML属性は次のとおりです。Android:src