Android图片之bitmap缩略图

本文介绍了一种通过BitmapFactory.Options参数调整本地图片大小的方法,以防止内存溢出问题。通过设置inJustDecodeBounds和inSampleSize等参数,可以有效地减小图片尺寸并保持较好的视觉效果。

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

学习日记之图像缩略图。之前也用过bitmap但是没有仔细去了解,包括今天也没有特别的熟悉,只是说把学到的记录下来,怕以后忘。我们将本地的图片放在页面上是,如果不做处理非常容易引起OOM内存溢出。注释很详细我就不多说了。

BitmapFactory.Options options = new BitmapFactory.Options();//需要一个options对象来设置图像的参数。
options.inJustDecodeBounds = true;//这个参数为true的时候标示我们在下一步获取的old_bmp并不是一个图像,返回的只是图像的宽,高之类的数据,目的是得到图像的宽高,好自定义处理。
Bitmap old_bmp = BitmapFactory.decodeFile(path, options);//在这里我们得到图像的一些数据,path是本地图片的路径。
options.inSampleSize = options.outWidth/200;//计算出缩小倍率,我现在是把宽度写死200px,你也可以获取你的ImageView的宽度,从而计算出缩小倍率。如果options.inSampleSize =  10 的话,意思是长和宽同事缩小10倍。
options.inJustDecodeBounds = false;//这次我们需要真正的图像,所以在之前我们改为true现在要改回来。
options.inPreferredConfig = Bitmap.Config.RGB_565;//ALPHA_8 代表8位Alpha位图ARGB_4444 代表16位ARGB位图ARGB_8888 代表32位ARGB位图RGB_565 代表8位RGB位图,感兴趣的同学可以详细的搜一下。
options.inDither = false;    //不进行图片抖动处理
options.inPreferredConfig = null;  //设置让解码器以最佳方式解码
Bitmap new_bmp = BitmapFactory.decodeFile(path, options);//得到我们想要的图片,也就是缩略过的。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值