ImageView的src和background有什么区别?

76

我对在ImageView中使用src还是background感到困惑。

我知道前者意思是这个ImageView的内容,后者意思是ImageView的背景。

但是如何决定使用哪一个呢?我看不出有什么区别。

4个回答

78

所有视图都可以设置背景图片。

ImageViewsrc 具有以下额外功能:

  • 不同的缩放类型
  • 通过 adjustViewBounds 设置边界以匹配图像尺寸
  • 一些变换,如透明度设置

更多信息请参见文档


28
  1. 当您使用android:background时,图像将被设置为适应于ImageView区域(即根据ImageView的宽度和高度)。无论图像比ImageView小还是大都无所谓。

  2. 当您使用android:src时,图像将以其原始大小显示。不会进行自动缩放或调整。 注意:使用android:src,我们可以获得adjustViewBounds属性的额外好处。


22

如果你将一张图片设置为ImageView的背景,那么这张图片会按照ImageView的大小进行缩放。此外,src是前景图片,而background是背景图片。就像它所表示的那样。


4
为什么 ImageView 需要前景和背景两个属性? - IgorGanapolsky
@IgorGanapolsky 这样我们就可以为不同的状态(如聚焦、按下等)设置覆盖层。 - dgngulcan
@dgngulcan 材料组件库内置了所有这些功能。 - IgorGanapolsky
@IgorGanapolsky 曾经很久以前,没有材料组件库 :) - dgngulcan

3

XML中ImageView的src和background属性的区别:

background会根据ImageView组件给出的长度进行拉伸,而src将保持原始图片的大小而不进行拉伸。src是图片内容(前景),bg则是背景,两者可以同时使用。

另外ScaleType只作用于srcbg可以设置透明度。例如,在ImageButton中,您可以使用Android:scaleType来控制图像的缩放,示例代码如下:

 <ImageView 
  android:id="@+id/img"
  android:layout_height="60dip"
  android:layout_width= "60dip"
  android:src="@drawable/logo" 
  android:scaleType="centerInside" 
  android:layout_centerVertical= "true"/>

如果您遇到任何问题,请随时提出疑问。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接