ImageView 设置图片的方法
<ImageView
android:id="@+id/iv_imge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:contentDescription="测试图片" />
iv_imge.setBackground(getResources().getDrawable(R.drawable.ic_launcher));//
变形
iv_imge.setBackgroundResource(R.drawable.ic_launcher);// 变形
iv_imge.setBackgroundDrawable(getResources().getDrawable(R.drawable.ic_launcher));// 变形
iv_imge.setImageDrawable(getResources().getDrawable(R.drawable.ic_launcher)); //不会变形
String path=Environment.getExternalStorageDirectory()+File.separator+"a.jpg";
Bitmap bm = BitmapFactory.decodeFile(path);
iv_imge.setImageBitmap(bm);//不会变形
iv_imge.setImageResource(R.drawable.ic_launcher);//不会变形
总结:
setBackground,setBackgroundResource,setBackgroundDrawable对应属性background,会根据ImageView组件给定的长宽进行拉伸。
setImageBitmap,setImageResource对应属性src,存放的是原图的大小,不会进行拉伸。如果想改变src的大小,应该使用属性scaleType。ScaleType:
CENTER 居中,不执行缩放
CENTER_CROP 按原始比例缩放, 裁剪中间部
CENTER_INSIDE 按原始比例缩放, 居中,不裁剪
FIT_CENTER 居中缩放
FIT_START 上对齐缩放
FIT_END 下对齐缩放
FIT_XY 不按比例拉伸缩放
MATRIX 用矩阵来绘制