参考资料:
http://blog.csdn.net/dalleny/article/details/14048375
http://www.android100.org/html/201508/27/177067.html
区别如下:
1、 background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸,如果想要对src进行拉伸的话,使用android:scaleType
2、 src是图片内容(前景),bg是背景,可以同时使用。
3、 此外:scaleType只对src起作用;bg可设置透明度
4、 Src对应的Java代码是:imgView.setImageResource(R.drawable.*)
Background对应的Java代码是:imgView.setBackgroundResource(R.drawable.*);
5、 scaleType说明
CENTER /center 在视图中心显示图片,并且不缩放图片
CENTER_CROP / centerCrop 按比例缩放图片,使得图片长 (宽)的大于等于视图的相应维度
CENTER_INSIDE / centerInside 按比例缩放图片,使得图片长 (宽)的小于等于视图的相应维度
FIT_CENTER / fitCenter 按比例缩放图片到视图的最小边,居中显示
FIT_END / fitEnd 按比例缩放图片到视图的最小边,显示在视图的下部分位置
FIT_START / fitStart 把图片按比例扩大/缩小到视图的最小边,显示在视图的上部分位置
FIT_XY / fitXY 把图片不按比例缩放到视图的大小显示
MATRIX / matrix 用矩阵来绘制
区别效果图:
代码:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
android:scrollbars="vertical"
tools:context="com.example.imageviewsrcandbg.MainActivity" > <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" > <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1、ImageViewd的src和background的区别:" /> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(1)background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。如果想要对src进行拉伸的话,使用android:scaleType" />
<!-- =============================================================== -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(1.1)固定的宽高(100*60)ImageView控件background,图片是66" /> <!-- 固定的宽高ImageView控件 --> <ImageView
android:layout_width="100dp"
android:layout_height="60dp"
android:background="@drawable/load_circle" />
<!-- =============================================================== -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(1.2)固定的宽高(100*60)ImageView控件src,图片是66" /> <!-- 固定的宽高ImageView控件 --> <ImageView
android:layout_width="100dp"
android:layout_height="60dp"
android:src="@drawable/load_circle" />
<!-- =============================================================== -->
<!-- src和background的结合使用 --> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(2)固定的宽高(100*60)ImageView控件src是图片内容(前景),bg是背景,可以同时使用。" />
<!-- 固定的宽高ImageView控件 --> <ImageView
android:layout_width="100dp"
android:layout_height="60dp"
android:background="@drawable/load_circle"
android:src="@drawable/load_logo" />
<!-- =============================================================== -->
<!-- src的拉伸:scaleType --> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(3)scaleType只对src起作用,对src进行拉伸(固定的宽高(100*60)ImageView控件)" /> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(3.1)CENTER /center 在视图中心显示图片,并且不缩放图片" /> <!-- 固定的宽高ImageView控件 -->
<ImageView
android:layout_width="100dp"
android:layout_height="60dp"
android:src="@drawable/load_circle"
android:scaleType="center"
/>
<!-- =============================================================== -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(3.2)CENTER_CROP / centerCrop 按比例缩放图片,使得图片长 (宽)的大于等于视图的相应维度" /> <!-- 固定的宽高ImageView控件 -->
<ImageView
android:layout_width="100dp"
android:layout_height="60dp"
android:src="@drawable/load_circle"
android:scaleType="centerCrop"
/>
<!-- =============================================================== -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(3.3)CENTER_INSIDE / centerInside 按比例缩放图片,使得图片长 (宽)的小于等于视图的相应维度" /> <!-- 固定的宽高ImageView控件 -->
<ImageView
android:layout_width="100dp"
android:layout_height="60dp"
android:src="@drawable/load_circle"
android:scaleType="centerInside"
/>
<!-- =============================================================== -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(3.4)FIT_CENTER / fitCenter 按比例缩放图片到视图的最小边,居中显示" /> <!-- 固定的宽高ImageView控件 -->
<ImageView
android:layout_width="100dp"
android:layout_height="60dp"
android:src="@drawable/load_circle"
android:scaleType="fitCenter"
/>
<!-- =============================================================== -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(3.5)FIT_END / fitEnd 按比例缩放图片到视图的最小边,显示在视图的下部分位置——短边的下面或者右面" /> <!-- 固定的宽高ImageView控件 -->
<ImageView
android:layout_width="100dp"
android:layout_height="60dp"
android:src="@drawable/load_circle"
android:scaleType="fitEnd"
/>
<!-- =============================================================== -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(3.6)FIT_START / fitStart 把图片按比例扩大/缩小到视图的最小边,显示在视图的上部分位置——短边的上面或者左面" /> <!-- 固定的宽高ImageView控件 -->
<ImageView
android:layout_width="100dp"
android:layout_height="60dp"
android:src="@drawable/load_circle"
android:scaleType="fitStart"
/>
<!-- =============================================================== -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(3.7)FIT_XY / fitXY 把图片不按比例缩放到视图的大小显示——类似background" /> <!-- 固定的宽高ImageView控件 -->
<ImageView
android:layout_width="100dp"
android:layout_height="60dp"
android:src="@drawable/load_circle"
android:scaleType="fitXY"
/>
<!-- =============================================================== -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="(3.8)MATRIX / matrix 用矩阵来绘制——左上角开始绘制" /> <!-- 固定的宽高ImageView控件 -->
<ImageView
android:layout_width="100dp"
android:layout_height="60dp"
android:src="@drawable/load_circle"
android:scaleType="matrix"
/>
</LinearLayout> </ScrollView>
activity_mian.xml
素材(采用的是京东的loading图片):