Android Bitmap压缩策略

本文探讨了Android中为何需要高效加载Bitmap以及如何实现。由于大图可能导致内存溢出,通过设置采样率和使用BitmapFactory加载Bitmap是关键。采样率用于按比例缩小图片以减少内存占用,其值应为2的指数。通过先加载图片宽高信息,计算缩放比,再重新加载,可以避免图片拉伸模糊。高效加载流程包括设置inJustDecodeBounds为true获取宽高,计算采样率,然后重载图片。
摘要由CSDN通过智能技术生成
一、为什么Bitmap需要高效加载?

现在的高清大图,动辄就要好几M,而Android对单个应用所施加的内存限制,只有
小几十M,如16M,这导致加载Bitmap的时候很容易出现内存溢出。如下异常信
息,便是在开发中经常需要的:

java.lang.OutofMemoryError:bitmap size exceeds VM budget

为了解决这个问题,就出现了Bitmap的高效加载策略。其实核心思想很简单。假设
通过ImageView来显示图片,很多时候ImageView并没有原始图片的尺寸那么大,
这个时候把整个图片加载进来后再设置给ImageView,显然是没有必要的,因为
ImageView根本没办法显示原始图片。这时候就可以按一定的采样率来将图片缩小
后再加载进来,这样图片既能在ImageView显示出来,又能降低内存占用从而在一
定程度上避免OOM,提高了Bitmap加载时的性能

二、Bitmap高效加载的具体方式
1.加载Bitmap的方式

Bitmap在Android中指的是一张图片。通过BitmapFactory类提供的四类方法:
decodeFile,decodeResource,decodeStreamdecodeB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值