ScaleType字面意思是缩放类型,是用于ImageView的缩放的。
通过API的查询得知,
ImageView.ScaleType的结构为:
继承关系
public static final enum ImageView.ScaleType extends Enum<E extends Enum<E>>
java.lang.Object
java.lang.Enum<E extends java.lang.Enum<E>>
android.widget.ImageView.ScaleType
类概述
将图片边界缩放,以适应视图边界时的可选项。
常量
下面通过图片的显示看看效果,都采用在xml文件中设置属性的方式。
原图:
public static final ImageView.ScaleType CENTER
以原图的几何中心点和ImagView的几何中心点为基准,按图片的原来size居中显示,不缩放,当图片长/宽超过View的长/宽,则截取图片的居中部分显示ImageView的size.当图片小于View 的长宽时,只显示图片的size,不剪裁。
在 XML 中可以使用的语法: android:scaleType="center"。
效果:
按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
public static final ImageView.ScaleType CENTER_CROP
以原图的几何中心点和ImagView的几何中心点为基准,按比例扩大(图片小于View的宽时)图片的size居中显示,使得图片长 (宽)等于或大于View的长(宽),并按View的大小截取图片。当原图的size大于ImageView时,按比例缩小图片,使得长宽中有一向等于ImageView,另一向大于ImageView。实际上,使得原图的size大于等于ImageView。
在 XML 中可以使用的语法:android:scaleType="centerCrop"。
效果:
public static final ImageView.ScaleType CENTER_INSIDE
以原图的几何中心点和ImagView的几何中心点为基准,将图片的内容完整居中显示,通过按比例缩小原来的size使得图片长(宽)等于或小于ImageView的长(宽)。
在 XML 中可以使用的语法:android:scaleType="centerInside"。
效果:
若图片超过屏幕的宽和高,将图片的宽和高按比例缩小居中显示
public static final ImageView.ScaleType FIT_CENTER
把图片按比例扩大(缩小)到View的宽度,居中显示。
在 XML 中可以使用的语法: android:scaleType="fitCenter"。
效果:
public static final ImageView.ScaleType FIT_END
把图片按比例扩大(缩小)到View的宽度,显示在View的下部分位置。
在 XML 中可以使用的语法: android:scaleType="fitEnd"。
效果:
public static final ImageView.ScaleType FIT_START
把图片按比例扩大(缩小)到View的宽度,显示在View的上部分位置。
在 XML 中可以使用的语法:android:scaleType="fitStart"。
效果:
public static final ImageView.ScaleType FIT_XY
把图片按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满View。
在 XML 中可以使用的语法: android:scaleType="fitXY"。
效果:
public static final ImageView.ScaleType MATRIX
绘制时,使用图像矩阵方式缩放。图像矩阵可以通过 setImageMatrix(Matrix) 设置。
在 XML 中可以使用的语法: android:scaleType="matrix"。
效果:
若图片宽和高超过屏幕宽和高,默认截取左上角部分。