参考资料:
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 用矩阵来绘制
区别效果图:
代码:
1 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:background="#00000000" 6 android:scrollbars="vertical" 7 tools:context="com.example.imageviewsrcandbg.MainActivity" > 8 9 <LinearLayout 10 android:layout_width="match_parent" 11 android:layout_height="wrap_content" 12 android:orientation="vertical" > 13 14 <TextView 15 android:layout_width="wrap_content" 16 android:layout_height="wrap_content" 17 android:text="1、ImageViewd的src和background的区别:" /> 18 19 <TextView 20 android:layout_width="wrap_content" 21 android:layout_height="wrap_content" 22 android:text="(1)background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。如果想要对src进行拉伸的话,使用android:scaleType" /> 23 <!-- =============================================================== --> 24 <TextView 25 android:layout_width="wrap_content" 26 android:layout_height="wrap_content" 27 android:text="(1.1)固定的宽高(100*60)ImageView控件background,图片是66" /> 28 29 <!-- 固定的宽高ImageView控件 --> 30 31 <ImageView 32 android:layout_width="100dp" 33 android:layout_height="60dp" 34 android:background="@drawable/load_circle" /> 35 <!-- =============================================================== --> 36 <TextView 37 android:layout_width="wrap_content" 38 android:layout_height="wrap_content" 39 android:text="(1.2)固定的宽高(100*60)ImageView控件src,图片是66" /> 40 41 <!-- 固定的宽高ImageView控件 --> 42 43 <ImageView 44 android:layout_width="100dp" 45 android:layout_height="60dp" 46 android:src="@drawable/load_circle" /> 47 <!-- =============================================================== --> 48 <!-- src和background的结合使用 --> 49 50 <TextView 51 android:layout_width="wrap_content" 52 android:layout_height="wrap_content" 53 android:text="(2)固定的宽高(100*60)ImageView控件src是图片内容(前景),bg是背景,可以同时使用。" /> 54 <!-- 固定的宽高ImageView控件 --> 55 56 <ImageView 57 android:layout_width="100dp" 58 android:layout_height="60dp" 59 android:background="@drawable/load_circle" 60 android:src="@drawable/load_logo" /> 61 <!-- =============================================================== --> 62 <!-- src的拉伸:scaleType --> 63 64 <TextView 65 android:layout_width="wrap_content" 66 android:layout_height="wrap_content" 67 android:text="(3)scaleType只对src起作用,对src进行拉伸(固定的宽高(100*60)ImageView控件)" /> 68 69 <TextView 70 android:layout_width="wrap_content" 71 android:layout_height="wrap_content" 72 android:text="(3.1)CENTER /center 在视图中心显示图片,并且不缩放图片" /> 73 74 <!-- 固定的宽高ImageView控件 --> 75 <ImageView 76 android:layout_width="100dp" 77 android:layout_height="60dp" 78 android:src="@drawable/load_circle" 79 android:scaleType="center" 80 /> 81 <!-- =============================================================== --> 82 <TextView 83 android:layout_width="wrap_content" 84 android:layout_height="wrap_content" 85 android:text="(3.2)CENTER_CROP / centerCrop 按比例缩放图片,使得图片长 (宽)的大于等于视图的相应维度" /> 86 87 <!-- 固定的宽高ImageView控件 --> 88 <ImageView 89 android:layout_width="100dp" 90 android:layout_height="60dp" 91 android:src="@drawable/load_circle" 92 android:scaleType="centerCrop" 93 /> 94 <!-- =============================================================== --> 95 <TextView 96 android:layout_width="wrap_content" 97 android:layout_height="wrap_content" 98 android:text="(3.3)CENTER_INSIDE / centerInside 按比例缩放图片,使得图片长 (宽)的小于等于视图的相应维度" /> 99 100 <!-- 固定的宽高ImageView控件 --> 101 <ImageView 102 android:layout_width="100dp" 103 android:layout_height="60dp" 104 android:src="@drawable/load_circle" 105 android:scaleType="centerInside" 106 /> 107 <!-- =============================================================== --> 108 <TextView 109 android:layout_width="wrap_content" 110 android:layout_height="wrap_content" 111 android:text="(3.4)FIT_CENTER / fitCenter 按比例缩放图片到视图的最小边,居中显示" /> 112 113 <!-- 固定的宽高ImageView控件 --> 114 <ImageView 115 android:layout_width="100dp" 116 android:layout_height="60dp" 117 android:src="@drawable/load_circle" 118 android:scaleType="fitCenter" 119 /> 120 <!-- =============================================================== --> 121 <TextView 122 android:layout_width="wrap_content" 123 android:layout_height="wrap_content" 124 android:text="(3.5)FIT_END / fitEnd 按比例缩放图片到视图的最小边,显示在视图的下部分位置——短边的下面或者右面" /> 125 126 <!-- 固定的宽高ImageView控件 --> 127 <ImageView 128 android:layout_width="100dp" 129 android:layout_height="60dp" 130 android:src="@drawable/load_circle" 131 android:scaleType="fitEnd" 132 /> 133 <!-- =============================================================== --> 134 <TextView 135 android:layout_width="wrap_content" 136 android:layout_height="wrap_content" 137 android:text="(3.6)FIT_START / fitStart 把图片按比例扩大/缩小到视图的最小边,显示在视图的上部分位置——短边的上面或者左面" /> 138 139 <!-- 固定的宽高ImageView控件 --> 140 <ImageView 141 android:layout_width="100dp" 142 android:layout_height="60dp" 143 android:src="@drawable/load_circle" 144 android:scaleType="fitStart" 145 /> 146 <!-- =============================================================== --> 147 <TextView 148 android:layout_width="wrap_content" 149 android:layout_height="wrap_content" 150 android:text="(3.7)FIT_XY / fitXY 把图片不按比例缩放到视图的大小显示——类似background" /> 151 152 <!-- 固定的宽高ImageView控件 --> 153 <ImageView 154 android:layout_width="100dp" 155 android:layout_height="60dp" 156 android:src="@drawable/load_circle" 157 android:scaleType="fitXY" 158 /> 159 <!-- =============================================================== --> 160 <TextView 161 android:layout_width="wrap_content" 162 android:layout_height="wrap_content" 163 android:text="(3.8)MATRIX / matrix 用矩阵来绘制——左上角开始绘制" /> 164 165 <!-- 固定的宽高ImageView控件 --> 166 <ImageView 167 android:layout_width="100dp" 168 android:layout_height="60dp" 169 android:src="@drawable/load_circle" 170 android:scaleType="matrix" 171 /> 172 </LinearLayout> 173 174 </ScrollView>
素材(采用的是京东的loading图片):