加载大图,解决oom问题

本文介绍了一种在Android中实现图片智能缩放的方法。通过设置BitmapFactory.Options的inJustDecodeBounds参数为true来获取图片尺寸,然后根据ImageView的宽度计算缩放比例,最后关闭预览模式重新加载图片以达到内存优化的目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<span style="font-size:24px;">//1得到预览图片,获取其大小
		Options op=new Options();
		op.inJustDecodeBounds=true;//主要是这个参数,如果设置为true就不将图片加载到内存,只是获取该图片的详细信息
		Bitmap bm=BitmapFactory.decodeFile(path, op);
//2.获得图片具体的宽高,和要设置的iv控件的宽高,按照比例进行缩放
		if(op.outWidth>width||op.outHeight>width){
			if(op.outWidth>op.outHeight){
				
				scale=op.outWidth/width;
			}
			else{
				
				scale=op.outHeight/width;
			}
			op.inSampleSize=scale;
			
		}
//3.在把预览模式关闭
		op.inJustDecodeBounds=false;
//4.最后再重新加载,得到的图片就是缩放好的图片
BitmapFactory.decodeFile(path, op)</span>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值