slider

还是菜鸟
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ImageView.ScaleType简单介绍

Posted on 2013-03-07 13:04  slider  阅读(362)  评论(0编辑  收藏  举报

  ImageView.ScaleType共八种:
        1·ImageView.ScaleType.center:图片位于视图中间,但不执行缩放。
        2·ImageView.ScaleType.CENTER_CROP 按统一比例缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或者大于相应的视图的维度
        3·ImageView.ScaleType.CENTER_INSIDE按统一比例缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或者小于相应的视图的维度
        4·ImageView.ScaleType.FIT_CENTER缩放图片使用center
        5·ImageView.ScaleType.FIT_END缩放图片使用END
        6·ImageView.ScaleType.FIT_START缩放图片使用START
        7·ImageView.ScaleType.FIT_XY缩放图片使用XY
        8·ImageView.ScaleType.MATRIX当绘制时使用图片矩阵缩放

详细如下:

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

 

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缩放拉伸原则一样,区别是处理过的图片居右显示。