ImageView 可以通过ScaleType属性调整图片在控件上的缩放显示方式
| 属性 | 描述 |
|---|---|
| MATRIX | 绘制时使用图像矩阵进行缩放 |
| FIT_XY | 不按照比例缩放图片,将图片塞满整个View |
| FIX_START | 按比例缩放图片,顶部显示 |
| FIT_CENTER | 按比例缩放图片,居中显示 |
| FIT_END | 按比例缩放图片,底部显示 |
| CENTER | 不缩放,居中显示 |
| CENTER_CROP | 按比例缩放图片,居中显示 |
| CENTER_INSIDE | 按比例缩放,将图片完全显示在View内 |
通过图像矩阵进行设置,操作十分灵活
java代码
Matrix matrix = new Matrix();
matrix.setScale(1.0f, 1.0f);
mImageView.setImageMatrix(matrix);
xml代码
android:scaleType="matrix"
不按照比例缩放图片,将图片塞满整个View
使用Matrix.ScaleToFit#FILL进行缩放,在X和Y方向上独立缩放,以便src与dst精确匹配。这可能会改变src的纵横比。
java代码
mImageView.setScaleType(ImageView.ScaleType.FIT_XY);
xml代码
android:scaleType="fitXY"
按比例缩放图片,将图片完全显示,缩放某一边匹配View。在上边或左边显示
使用Matrix.ScaleToFit#START缩放,计算将保持原始src纵横比的比例,但也将确保src完全适合dst。至少有一个轴(X或Y)将精确匹配。开始将结果与dst的左边缘和上边缘对齐。
java代码
mImageView.setScaleType(ImageView.ScaleType.FIT_START);
xml代码
android:scaleType="fitStart"
按比例缩放图片,将图片完全显示,缩放某一边匹配View。居中显示
使用Matrix.ScaleToFit#CENTER缩放图像,计算将保持原始src纵横比的比例,但也将确保src完全适合dst。至少有一个轴(X或Y)将精确匹配。结果集中在dst内。
java代码
mImageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
xml代码
android:scaleType="fitCenter"
按比例缩放图片,见图片完全显示,缩放某一边匹配View。在下边或右侧显示
使用Matrix.ScaleToFit#END缩放图像。计算将保持原始src纵横比的比例,但也将确保src完全符合dst。至少有一个轴(X或Y)将精确匹配。END将结果与dst的右边缘和下边缘对齐。
java代码
mImageView.setScaleType(ImageView.ScaleType.FIT_END);
xml代码
android:scaleType="fitEnd"
不缩放,居中显示
java代码
mImageView.setScaleType(ImageView.ScaleType.CENTER);
xml代码
android:scaleType="center"
按比例缩放图片,缩放到短边匹配View视图。居中显示
均匀缩放图像(保持图像的纵横比),以便图像的两个维度(宽度和高度)都等于或大于视图的相应维度(减去填充)。然后,图像在视图中居中。
java代码
mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
xml代码
android:scaleType="centerCrop"
按比例缩小,不会拉伸,将图片的长边完全显示在View内。居中显示
均匀缩放图像(保持图像的纵横比),以便图像的两个维度(宽度和高度)都等于或小于视图的相应维度(减去填充)。然后,图像在视图中居中。
java代码
mImageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
xml代码
android:scaleType="centerInside"
整体效果图
