一、drawable 与 mipmapmipmap 用于存放应用图标drawable 用于存放其他所有图片资源例如背景、图标、插图等mipmap 的特殊性Android 系统会为不同分辨率设备选择最合适的图标 ic_launcher.png → mipmap-hdpi/ ic_launcher_round.png → mipmap-hdpi/drawable 的标准行为遵循正常的资源匹配机制根据密度优先匹配找不到则向上或向下缩放 btn_submit.png → drawable-hdpi/ ic_back.png → drawable-hdpi/ImageView 的 setImageResource 方法完全支持res/drawable和res/mipmap目录下的图片资源无论是 drawable 还是 mipmap系统都会为它们生成相同的R.drawable.xxx或R.mipmap.xxx资源 ID二、ImageView scaleType 属性缩放类型说明fitCenter等比例缩放图片直到长边与 ImageView 对齐缩放后图片会居中显示这是默认值center按原图大小居中显示如果图片大于 ImageView则截取中间部分如果图片小于 ImageView则直接居中显示centerCrop等比例缩放图片直到短边与 ImageView 对齐长边会被裁剪缩放后图片会居中显示centerInside等比例缩小图片直到长边与 ImageView 对齐缩小后图片会居中显示如果图片小于 ImageView则直接居中显示fitStart等比例缩放图片直到长边与 ImageView 对齐缩放后图片会放在 ImageView 的左上角fitEnd等比例缩放图片直到长边与 ImageView 对齐缩放后图片会放在 ImageView 的右下角fitXY不按比例拉伸图片使其完全填满整个 ImageViewmatrix不缩放从 ImageView 的左上角开始绘制超出 ImageView 范围的部分会被裁剪最推荐使用的缩放类型是 fitCenter 和 centerCrop三、background 属性注意事项background 属性的默认行为是图片会被拉伸以填满整个 Viewbackground 属性没有类似 scaleType 这样的属性设置缩放类型四、ImageView 设置图片方式1、setImageResource从 drawable 资源设置imageView.setImageResource(R.drawable.ic_launcher_background);从 mipmap 资源设置imageView.setImageResource(R.mipmap.test);2、setBackgroundResourceimageView.setBackgroundResource(R.drawable.ic_launcher_background);3、setImageBitmapBitmapbitmapBitmapFactory.decodeResource(getResources(),R.mipmap.test);imageView.setImageBitmap(bitmap);4、setImageDrawable从资源获取 drawableDrawabledrawableContextCompat.getDrawable(this,R.drawable.ic_launcher_background);imageView.setImageDrawable(drawable);DrawabledrawableVectorDrawableCompat.create(getResources(),R.drawable.ic_launcher_background,null);imageView.setImageDrawable(drawable);创建颜色 drawableDrawabledrawablenewColorDrawable(Color.BLUE);imageView.setImageDrawable(drawable);5、setImageURIFilefilenewFile(getFilesDir(),test.png);UriuriUri.fromFile(file);imageView.setImageURI(uri);