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