所选用的图片规格是:230 * 126 (1.8 : 1)
ImageView 控件的背景颜色是黑色,当图片没有铺满控件时,将显示出来
测试在四种 ImageView 宽高的情况下的显示效果:
119 * 78 | 100 * 50 | 238 * 156 | 300 * 150 |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
通过对比以上四张图片,我们可以总结出以下结论:
-
当值为 center 时,原始图片不进行放缩,如果 ImageView 控件宽高大于图片,则居中显示,其余地方留白,如果 ImageView 控件宽高小于图片,则对原始图片进行裁剪,取中间区域显示;
-
当值为 centerCrop 时,原始图片将进行等比例缩放,以宽高比较大的边缩放到与控件相同,然后将较长边多余的裁剪掉,比如 原始图片宽高比:1.8:1,ImageView 控件宽高比:2:1, 此时将 原始图片的宽 1.8 放大到 2,此时原始图片的高变为 1.1,然后将高度裁剪为 1;
-
当值为 centerInside 时,如果 ImageView 的宽高都大于 原始图片,那么原始图片将保持原样,而只要有一边小于原始图片,那么原始图片将按照最小边进行等比例缩放,剩余部分留白;
-
当值为 fitCenter 时,与 centerInside 类似,唯一不同的是,当 ImageView 宽高都大于原始图片时,centerInside 不会进行放大,而 fitCenter 会放大直到宽或高与 ImageView 的宽或高相同为止,剩余部分留白;
-
fitStart 和 fitEnd 与 fitCenter 类似,唯一不同的是,fitStart 是靠左边或靠上,fitEnd 是靠右或者靠下,而 fitCenter 是居中显示;
-
当值为 fitXY 时,原始图片单纯地铺满整个控件,不进行等比例缩放,此时如果控件宽高比和图片宽高比不相同,则图片将出现变形;