ImageView.setBackgroundResource和ImageView.setImageResource有什么区别?

时间:2011-08-28 14:53:09

标签: android image background imageview

我在设置图像时看到了这些不同的方法,但我没有区别。

为什么有两种方法?

4 个答案:

答案 0 :(得分:40)

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,则剩余的边框将留空,并显示背景。

答案 1 :(得分:3)

SetBackdroundResource用于您想要在imageview的背景设置的可绘制颜色或颜色,并且您的setImageResource就像要在其上显示。

所以setImageResource用于向imageview的正面添加任何资源。尝试这个例子,看看差异。 Android Gallery, ImageView Example 。这是一个两层效果,backside(setBackgroundResource)和frontside(setImageResource)。

答案 2 :(得分:2)

方法setBackgroundResource()属于所有视图。方法setImageResource()仅属于ImageView。你可以设置它们:

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

enter image description here

setBackgroundResource()方法会导致图片的宽度和高度被拉伸以填充视图的大小。 setImageResource()方法会让其图像保持宽高比。

我更全面的回答是here

答案 3 :(得分:0)

setBackgroundResource设置ImageView的背景图像。 XML属性为:android:background

setImageResource设置ImageView中显示的图像。 XML属性为:android:src