Android ImageView scaleType
Android中可以通过ImageView的scaleType属性(XML中的android:scaleType)来控制ImageView中的图片的位置(图片在ImageView中的位置),该属性有五个值。
1. matrix:不保持原图大小,图片从左上角开始显示,不进行任何处理,若图片宽高超出ImageView则只显示未超出部分。
2. center:不保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,若图片宽高超出ImageView则只显示
未超出部分。
3. centerInside:以原图的几何中心点和ImagView的几何中心点为基准(以显示完整图片为目标,对原图进行缩放)。
4. centerCrop:以原图的几何中心点和ImagView的几何中心点为基准(以填满ImagView为目标,对原图进行裁剪,宽或
高可能有一部分无法显示)。
5. fitCenter(默认方式,已测试):将图片等比例放大或缩小至ImageView的宽高,基准点为ImageView的中心(以根据
ImageView大小完整显示图片为目标)。
6. fitStart:将图片等比例放大或缩小至ImageView的宽高,基准点为ImageView的左上角(以根据ImageView大小完整显示
图片为目标)。
7. fitEnd:将图片等比例放大或缩小至ImageView的宽高,基准点为ImageView的右下角(以根据ImageView大小完整显示
图片为目标)。
8. fitXY:将图片放大或缩小至ImageView的宽和高(以根据ImageView大小完整显示图片为目标)。
注:
1. 当图片 < ImageView时,center、centerInside无区别。除了在布局文件里面控制显示方式外,还可以通过Bitmap、Matrix等
图片相关类进行压缩、缩放等操作。
2. fitCenter、fitStart、fitEnd、centerInside、centerCrop都是等比例缩放,fitXY通常是非等比例的。
3. fitCenter、fitStart、fitEnd、fitXY、centerInside都一定会完整显示图片。
4. fitCenter、fitStart、fitEnd、fitXY、是以根据ImageView大小完整显示图片为目标(如果原图已经可以正常显示,也会将图片
放缩到ImageView大小,这是和centerInside、centerCrop的主要区别)。