场景:安卓应用中要求图片充满屏幕宽度,高度随着宽度的伸缩比例自动伸缩。(不用考虑图片宽高比,等比例缩放图片)
/**
* 自适应图片的ImageView
* @param context
* @param image
* @param source
*/
public static void setImageViewMathParent(Activity context,
ImageView image, Bitmap bitmap) {
//获得屏幕密度
DisplayMetrics displayMetrics = new DisplayMetrics();
context.getWindowManager().getDefaultDisplay()
.getMetrics(displayMetrics);
//获得屏幕宽度和图片宽度的比例
float scalew = (float)displayMetrics.widthPixels
/ (float) bitmap.getWidth();
//获得ImageView的参数类
ViewGroup.LayoutParams vgl=image.getLayoutParams();
//设置ImageView的宽度为屏幕的宽度
vgl.width=displayMetrics.widthPixels;
//设置ImageView的高度
vgl.height=(int) (bitmap.getHeight()*scalew);
//设置图片充满ImageView控件
image.setScaleType(ScaleType.FIT_XY);
//等比例缩放
image.setAdjustViewBounds(true);
image.setLayoutParams(vgl);
image.setImageBitmap(bitmap);
if (bitmap != null && bitmap.isRecycled()) {
bitmap.recycle();
}
}
可以把此静态方法放到BitmapUtils这个工具类中。