Android中ImageView的scaleType属性详解

一直都对scaleType属性一知半解,今天有空网上找了些资料加上自己的demo演示终于算是了却了一直存在的疑问。ImageView中的scaleType属性用以表示显示图片的方式,下面开始详细的介绍几种属性的特点。

 

  

以上四张图是用来测试用的图片,分辨率分别为:128*96、1024*768、768*1024、768*768,为了方便后面的解释,我们简称这四张图为小、大、直、宽。

1、ScaleType.CENTER属性

   

上面四张图分别代表了在ScaleType.CENTER属性下,四张图的显示情况。可以用一句话来概括,图片大小为原始大小,如果图片大小超出了xml中设置的ImageView控件大小,则截取图片中间部分,若小于则将图片居中显示;

2、ScaleType.CENTER_CROP属性

   

ScaleType.CENTER_CROP属性可以概括为,将图片等比例缩放,让图片的短边与ImageView的边长度相同(比方说1024*768这张图片,我要显示在540*960的手机上,那么短边为768,因为这一边没有超过960,将其放大到960后整体图片跟着放大,然后截取中间部分),即不能留空白,然后缩放后截取中间部分进行显示。

下面几个属性我就不上图了,图太多了,有兴趣的可以自行测试。

3、ScaleType.CENTER_INSIDE属性

将图片大小大于ImageView的图片进行等比例缩小,直到整幅图能够居中显示在ImageView中,小于ImageView的图片不变,直接居中显示。

4、ScaleType.FIT_CENTER属性

ImageView的默认状态,大图等比例缩小,使整幅图能够居中显示在ImageView中,小图等比例放大,同样要整体居中显示在ImageView中。

5、ScaleType.FIT_END属性

缩放方式同FIT_CENTER,只是将图片显示在右方或下方,而不是居中。

6、ScaleType.FIT_START属性

缩放方式同FIT_CENTER,只是将图片显示在左方或上方,而不是居中。

7、ScaleType.FIT_XY属性

将图片非等比例缩放到大小与ImageView相同。

8、ScaleType.MATRIX属性

是根据一个3×3的矩阵对其中图片进行缩放。