Bitmap加载内存分析

本文探讨了Bitmap在Android中的内存计算方式,包括从drawable、mipmap目录和本地磁盘加载时的不同处理。影响Bitmap内存的两个关键因素是图片分辨率和像素格式。内存大小等于像素大小乘以每个像素的内存占用。为了优化,通常首选减小图片尺寸,而非改变像素格式以避免质量损失。系统会根据设备dpi自动调整res目录中图片的分辨率,而磁盘等其他来源则按原图计算。最后,图片文件大小与内存占用无关。
摘要由CSDN通过智能技术生成

一、Bitmap内存

1.Bitmap内存的计算方式

1.decodeResource 从drawable、mipmap这种对应的文件目录中加载图片
Bitamp 占用内存大小 = 宽度像素 x (inTargetDensity / inDensity) x 高度像素 x (inTargetDensity / inDensity)x 一个像素所占的内存
inTargetDensity :设备的dpi
inDensity :当前文件所在drawable文件夹目录 对应的dpi
在这里插入图片描述
一个像素所占的内存,有以下几种像素格式:

ALPHA_8 1byte
ARGB_4444 2byte
ARGB_8888 4byte
RGB_565 2byte

2.从本地磁盘 、asset、等方式中加载图片
Bitamp 占用内存大小 = 宽度像素 x 高度像素 x 一个像素所占的内存

注意:当使用第三方库时,则不能用这些公式来计算,因为三方库内部会重新对内存进行优化。
eg:
fresco:不管图片来源是哪里,即使是 res,图片占用的内存大小仍旧以原图的分辨率计算。
Glide:如果有设置图片显示的控件,那么会自动按照控件的大小,降低图片的分辨

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值