作者:汜水 | 来源:互联网 | 2023-06-03 11:15
publicstaticenumScaleType{MATRIX,FIT_XY,FIT_START,FIT_CENTER,FIT_END,CENTER,CENTER_CROP,CE
public static enum ScaleType {MATRIX,FIT_XY,FIT_START,FIT_CENTER,FIT_END,CENTER,CENTER_CROP,CENTER_INSIDE;private ScaleType() {}}
由代码中可以看出ScaleType有八种属性。我们先上对比图,再分析各个属性的不同。
-
matrix:不改变原图的大小,从ImageView的左上角开始绘图,原图超过ImageView大小的部分不做显示,裁剪掉。
-
fitXY:按照ImageView的大小显示,拉伸图片,填满ImageView。
-
fitCenter:将原图按比例缩放到ImageView的高度或者宽度,居中显示。
-
fitEnd:将原图按比例缩放到ImageView的高度或者宽度,在ImageView的底部显示
-
fitStart:将原图按比例缩放到ImageView的高度或者宽度,在ImageView的上部显示
-
center:不改变原图的大小,在原图的中心部分显示在ImageView的中心,当原图超过ImageView不做显示,裁剪掉。
-
centerCrop:以原图填满ImageView为目的,如果原图size大于ImageView的size,则与center_inside一样,按比例缩小,居中显示在ImageView上。如果原图size小于ImageView的size,则按比例拉升原图的宽和高,填充ImageView居中显示。
-
centerInside:以原图正常显示为目的,如果原图大小大于ImageView的size,就按照比例缩小原图的宽高,居中显示在ImageView中。如果原图size小于ImageView的size,则不做处理居中显示图片。
从上面的解析中,我们可以看出:
- 以
FIT_
开头的4种,它们的共同点是都会对图片进行缩放; - 以
CENTER_
开头的3种,它们的共同点是居中显示,图片的中心点会与ImageView
的中心点重叠; ScaleType.MATRIX
,单独一种。