Android 图片ImageView.ScaleType详解

来源:互联网 发布:双色球数据分析频率图 编辑:程序博客网 时间:2024/06/06 15:52

ImageView控件中有个属性叫scaleType,scaleType用来控制在ImageView上显示的图片样式。

ImageView提供了以下方法选择scaleType的样式

public void setScaleType (ImageView.ScaleType scaleType) 

相关的xml属性:

android:scaleType

接下来我们使用图片来演示各个样式的显示效果

原图片:(1920 * 1200)


1.CENTER (android:scaleType="center")

按图片原来的大小和比例居中显示,当图片的宽/高超过了View设置的宽高时,则截取图片的居中部分显示。当图片的宽/高没超过View设置的宽/高时则不截取。


2.CENTER_CROP (android:scaleType="centerCrop")

让图片的宽/高等于View设置的宽/高,保持图片的比例并居中显示。填满View设置的宽和高


3.CENTER_INSIDE (android:scaleType="cneterInside")

将图片按比例完全显示出来,并且居中,使得图片的宽/高等于或小于View设置的宽/高。如果原图的宽/高本身就小于View设置的宽/高,则原图的宽高不作任何处理。


4.FIT_CENTER (android:scaleType="fitCenter")

基本和CENTER_INSID一样,不同的是,CENTER_INSIDE对于原图比View小的图片不做扩大处理,而FIT_CENTER则会做扩大处理以填充宽/高


5.FIT_END (android:scaleType="fitEnd")

和FIT_CENTER处理图片的方式一致,显示的位置在View的底部或者右边。


6.FIT_START  (android:scaleType="fitStart")

和FIT_CENTER处理图片的方式一致,显示的位置在View的顶部或者左边。


7.FIT_XY (android:scaleType="fitXY")

把图片显示的宽高等于View设置的宽高,填满View控件,不保持图片的比例。



8.MATRIX (android:scaleType="matrix")

对图片不进行处理,显示的时候从图片的左上角进行显示,超过View宽/高的部分做剪裁处理。


在处理listView或者gridView中显示的图片时,图片大小都应该要一样大才好看,建议使用centerCrop或者fitXY,需要保持图片比例就使用centerCrop,不需要则使用fitXY。

1 0