ImageView 的 scaleType 小结

官方文档中很简略的介绍了一下,具体用法不是很清楚,这里做个小结:


MATRIX 用图片的矩阵从左向开始来画,不做任何拉伸。如果一个100*100的ImageView,它的src是10*10的小图,则图显示在左上角,如果scr是200*200的大图,则截取它左上的100*100做显示。


CENTER 不做任何拉伸,以居中的方式显示图片。如果是一个100*100的ImageView,它的src是10*10的小图,则图显示在的中央,如果src是200*200的大图,截取中间的100*100用来显示。


CENTER_CROP 保持图片横宽比,以图片中心为基点进行拉伸显示,拉伸的原则是填充满整个ImageView。如果是一个100*100的ImageView,它的src是20*10,则它会被等比拉伸成200*100,然后再截取其中央的100*100显示。如果src是200*300的,直接截取中央的100*100显示,不做任何拉伸或缩放。


CENTER_INSIDE 保持图片横宽比,以图片中心为基点进行缩放显示,缩放的原则是显示完整个图片。如果是一个100*100的ImageView,它的src是20*10,它直接居中显示。如果src是200*100的,先把图片等比缩小到100*50,然后再居中显示。


FIT_XY 不保持图片横宽比,把图片的宽和高分别拉伸或缩放至ImageView的大小。如果是一个100*100的ImageView,它的src是20*10,则直接把它拉伸为100*100后显示,如果src是200*100,则把它缩放为100*100后显示,此种方法容易导致图片变形。


FIT_CENTER 保持横宽比,对图片进行拉伸或缩放,原则是:1)图片能完整显示,2)图片宽或高至少有一样与ImageView的相同,3)处理过的图片居中显示。如果是一个100*100的ImageView,它的src是20*10,先把图片等比放大到100*50,然后再居中显示。它的src是100*200,会先把图片等比缩放到50*100,然后再居中显示。


FIT_START 与 FIT_CENTER 缩放拉伸原则一样,区别是处理过的图片居左显示。


FIT_END 与 FIT_CENTER缩放拉伸原则一样,区别是处理过的图片居右显示。


下面有文章中有实例图:

http://juliaailse.iteye.com/blog/1409317

你可能感兴趣的:(ImageView 的 scaleType 小结)