Android ImageView的ScaleType属性到底怎么用?
ImageView是Android开发中常用控件之一,在设置中经常需要通过scaleType来对原始的图像进行处理,使得它能在空间中合理地展示。
做为一个Android开发工程师,每次用scaleType就像玩福不福似的,用不用的对全凭运气,以后要凭本事了!下面就对scaleType的属性值使用进行有图有真相的说明。
ScaleType 分类 - 从眼熟到认识
CENTER | 将图片居中,不执行缩放,如果图片小于视图宽高,会有空白区域,如果图片大,只保留中心部分其他会被裁剪 |
CENTER_CROP | 图片从中心开始等比例缩放,使得图片的宽和高都大于或等于视图的宽高 |
CENTER_INSIDE | 图片等比例缩放,使得宽度和高度都等于或小于视图的宽高 |
FIT_START |
图片等比例缩放,将图片放置到视图的左上角,然后进行向外按比例放大或者缩小,直到一个方向已到视图边界 |
FIT_CENTER | 图片等比例缩放,将图片放置到视图中心,进行向外按比例放大或者缩小,直到一个方向已到视图边界 |
FIT_END |
图片等比例缩放,将图片放置到视图的右下角,然后进行向外按比例放大或者缩小,直到一个方向已到视图边界 |
FIT_XY | 独立缩放宽和高,使其与视图宽高一致,可能会改变图片宽高比 |
MATRIX |
绘制时,使用图像矩阵进行缩放 |
实战 - 从认识到熟识
以上对常用的scaleType的属性值做了一个简短的记录,也是便于以后能更准确的使用属性。
官方文档在centerCrop和centerInside都有描述(minus padding),在实际使用过程中,除了center的padding是无效的,其他都是有效的。若同时使用center和padding属性,那么在加上下面属性即可。
android:cropToPadding="true"
还有一种属性值 Matrix 没有说明,后续总结。