学新通技术网

【Android】 ImageView的ScaleType属性到底怎么用?

juejin 6 1
【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 没有说明,后续总结。

本文出至:学新通技术网

标签: