Android页面添加图片(拍照或相册选择)后,有卡顿或者直接闪退

在Android应用中,当从相机或相册选择图片并尝试显示时,可能会遇到页面卡顿甚至闪退的问题。这通常由于图片尺寸过大导致内存溢出(OOM)。为解决此问题,需要在设置图片到控件之前对其进行压缩,以适应控件的宽高,从而避免内存消耗过高。这里介绍一种动态获取图片缩放值的方法,确保图片能流畅地在应用中展示。

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

一般是OOM问题,图片太大了,在setImage之前需要将图片进行压缩

Options opts = new Options();
opts.inJustDecodeBounds = true; //先设置为true,只读取图片,不加载到内存中
BitmapFactory.decodeFile(path, opts); // 这样,options里就得到了原图片的宽高值
int inSampleSize = ChooseImageUtils.calculateInSampleSize(opts, reqWidth, reqHeight); // 根据传递的图片展示控件的,指定宽高,得到图片需要的缩放值
opts.inSampleSize = inSampleSize;
opts.inJustDecodeBounds = false;
Bitmap bitmap = BitmapFactory.decodeFile(path, opts);

这样得到了按展示控件宽高设置的图片

动态获取图片的缩放值的方法

/**
     * 动态获取图片的缩放值
     * 
     * &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值