2019-12-09:请谈谈如何加载Bitmap并防止内存溢出?
Moosphan opened this issue · 4 comments
Moosphan commented
2019-12-09:请谈谈如何加载Bitmap并防止内存溢出?
guosen commented
首先我们 要知道bitmap内存是怎么计算的例子:
手机屏幕大小 1080 x 1920(inTarget = 420),加载 xhdpi (inDensity = 320)中的图片 1920 x 1080,scale = 420 / 320,
最总我们可以得知 他的占用内存 1418 * 2520 * 4
很明显 被放大了。
防止内存溢出:1对图片进行内存压缩;
2.高分辨率的图片放入对应文件夹;
3.内存复用
4.及时回收
fuusy commented
mlinqirong commented
先通过BitmapFactory.Options 设置inJustDecodeBounds 不占用内存来获取图片信息
判断是否为大图 根据使用场景计算缩放比较 inJustDecodeBounds设置为false 传递inSampleSize缩放比例压缩图片