1. ImageView属性:scaleType,用于控制图片根据控件大小的不同显示方式。
2. scaleType一共有8种值:matrix,fitXY,fitStart,fitCenter,fitEnd,center,centerCrop,centerInside。可以在java代码和xml中设置
下面记录一下这些值的含义和使用场景
在ImageView的大小固定或者宽高有一项固定的情况可以更好的看出这些值的区别
matrix
matrix表示原图左上角和ImageView的左上角重合开始绘制,如果原图大于ImageView,那么多余的部分则剪裁掉,如果原图小于ImageView,那么对原图不做任何处理。(不会做缩放处理,而是剪裁)
fitXY
fitXY的目标是填充整个ImageView,为了完成这个目标,它需要对图片进行一些缩放操作,在缩放的过程中,它不会按照原图的比例来缩放。(X,Y不等则是不规则缩放)
fitStart
将图片按比例缩放至View的宽度或者高度(取宽和高的最小值),然后居上或者居左显示(与前面缩放至宽还是高有关)(X,Y不等则是不规则缩放)
fitCenter
fitCenter和fitStart基本一样,唯一不同的是fitCenter将图片按比例缩放之后是居中显示。
fitEnd
fitEnd和fitStart也基本一样,唯一不同的是fitEnd将图片按比例缩放之后是居右或者居下显示。
center
center表示将原图按照原来的大小居中显示,如果原图的大小超过了ImageView的大小,那么剪裁掉多余部分,只显示中间一部分图像.(不做缩放处理,而是剪裁,居中显示)
centerCrop
centerCrop的目标是将ImageView填充满,故按比例缩放原图,使得可以将ImageView填充满,同时将多余的宽或者高剪裁掉,比如下面一个。(充满控件,缩放处理同时裁剪)
centerInsid
centerInside的目标是将原图完整的显示出来,故按比例缩放原图,使得ImageView可以将原图完整显示。(图片完整显示,缩放,不裁剪)
概括
CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示
FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
FIT_START / fitStart 把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
FIT_XY / fitXY 把图片 不按比例
参考资料:
本文详细介绍了Android中ImageView的scaleType属性的8种不同值及其应用场景,包括matrix、fitXY、fitStart、fitCenter、fitEnd、center、centerCrop和centerInside。通过对比不同值在固定尺寸的ImageView中的表现,帮助开发者更好地理解和使用这一属性。

211

被折叠的 条评论
为什么被折叠?



