失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > android怎么设置图片缩放比例 Android按比例缩放图片

android怎么设置图片缩放比例 Android按比例缩放图片

时间:2022-07-12 01:23:20

相关推荐

android怎么设置图片缩放比例 Android按比例缩放图片

Point outSize = new Point(showBigIvPic.getWidth(),showBigIvPic.getHeight());// 显示区域的高宽

// 使用图片的缩放比例计算将要放大的图片的高度

int bitmapScaledHeight = Math.round(resourceBitmap.getHeight() * outSize.x * 1.0f / resourceBitmap.getWidth());

// 以屏幕的宽度为基准,如果图片的宽度比屏幕宽,则等比缩小,如果窄,则放大

final Bitmap scaledBitmap = Bitmap.createScaledBitmap(resourceBitmap, outSize.x, bitmapScaledHeight, false);

showIvPic.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {

@Override

public boolean onPreDraw() {

try {

showIvPic.getViewTreeObserver().removeOnPreDrawListener(this);

//这里防止图像的重复创建,避免申请不必要的内存空间

if (scaledBitmap.isRecycled())return true;//必须返回true

int viewHeight = showBigIvPic.getMeasuredHeight();

Bitmap finallyBitmap = null;

if(scaledBitmap.getHeight() > viewHeight){

int offset = (scaledBitmap.getHeight() - viewHeight) / 2;// 计算将要裁剪的图片的顶部以及底部的偏移量

finallyBitmap = Bitmap.createBitmap(scaledBitmap, 0, offset, scaledBitmap.getWidth(),scaledBitmap.getHeight() - offset * 2);// 对图片以中心进行裁剪,裁剪出的图片就是非常适合了

}else{

int offset = (viewHeight - scaledBitmap.getHeight()) / 2;// 计算将要显示图片的顶部偏移量

//finallyBitmap = Bitmap.createBitmap(scaledBitmap, 0, offset, scaledBitmap.getWidth(),scaledBitmap.getHeight());

finallyBitmap = Bitmap.createBitmap(scaledBitmap.getWidth(), viewHeight, Bitmap.Config.ARGB_8888);

Canvas canvas = new Canvas(finallyBitmap);

canvas.drawBitmap(scaledBitmap, 0, offset, null);

canvas.save(Canvas.ALL_SAVE_FLAG);

canvas.restore();

}

if(null != finallyBitmap){

if(!finallyBitmap.equals(scaledBitmap)){//如果返回的不是原图,则对原图进行回收

scaledBitmap.recycle();

System.gc();

}//end of if

//showBigIvPic.setImageBitmap(resourceBitmap);

}else{

ToastUtils.showToastNew("抱歉,显示选择图片失败...");

}

}catch (Exception e){

ToastUtils.showToastNew("抱歉,显示选择图片异常...");

}

if (resourceBitmap != null && !resourceBitmap.isRecycled()) resourceBitmap.recycle();

return true;

}

});

如果觉得《android怎么设置图片缩放比例 Android按比例缩放图片》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。