注意:这个属性控制的是ImageView的图片资源的显示(绝非背景),这个属性只有设置ImageView的宽高属性不同时为wrap_content才生效(如果宽高都设置了wrap_content,那么图片的显示将根据图片的宽高进行显示)!!!
原图(270*480):
为了便于观察设置不同属性时ImageView控件的留白情况,给它设置一个背景色为红色,所显示的红色部分就是ImageView控件的留白部分,后面通过改变scaleType的值来观察ImageView的显示情况,XML代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.cyw.drawabledemo.MainActivity">
<ImageView
android:id="@+id/imageView"
android:layout_width="100dp"
android:layout_height="200dp"
android:scaleType="center"
android:background="#f00"
android:src="@mipmap/test" />
</LinearLayout>
- ScaleType.CENTER:图片大小为原始大小,如果图片大小大于ImageView控件,则截取图片中间部分,若小于,则直接将图片居中显示。
- ScaleType.CENTER_CROP:将图片等比例缩放,让图像的短边与ImageView的边长度相同,即不能留有空白,缩放后截取中间部分进行显示。
- ScaleType.CENTER_INSIDE:将图片大小大于ImageView的图片进行等比例缩小,直到整幅图能够居中显示在ImageView中,小于ImageView的图片不变,直接居中显示。
- ScaleType.FIT_CENTER:ImageView的默认状态,大图等比例缩小,使整幅图能够居中显示在ImageView中,小图等比例放大,同样要整体居中显示在ImageView中(可能会留下空白)
- ScaleType.FIT_END:缩放方式同FIT_CENTER,只是将图片显示在右方或下方,而不是居中。
- ScaleType.FIT_START:缩放方式同FIT_CENTER,只是将图片显示在左方或上方,而不是居中。
- ScaleType.FIT_XY:将图片非等比例缩放到大小与ImageView相同。
- ScaleType.MATRIX:是根据一个3x3的矩阵对其中图片进行缩放。