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

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

为什么有两种方法?

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用于您想要在imageview的背景设置的drawable或color,并且您的setImageResource就像要显示在它上面。

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

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

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

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

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

在此处输入图像描述

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

我的答案更全面。