android bitmap大小计算,android 之Bitmap 内存大小计算

0a9b3ada85de?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

QQ截图20180426154121.png

想要知道一个Bitmap 占用多大内存 我们只需要调用getByteCount方法就可以了,但是不可能每次都将图片塞到项目中然后把运行看吧,所以我们必须要学会占卜的技能,精准计算它放进来所占内存来考虑是否放它.

我们测试手机华为mate8 分辨率 1080* 1920,densityDpi 480

测试图片720*1280 放置在xhdpi中

首先必须明白下面的尺寸对应关系

屏幕DPI的对应关系

density

1

1.5

2

3

3.5

4

densityDpi

160

240

320

480

560

640

资源文件夹DPI中对应关系

Android手机屏幕标准

对应图标尺寸标准

屏幕密度

比例

xxxhdpi 3840*2160

192*192

640

16

xxhdpi 1920*1080

144*144

480

12

xhdpi 1280*720

96*96

320

8

hdpi 480*800

72*72

240

6

mdpi 480*320

48*48

160

4

ldpi 320*240

36*36

120

3

https://blog.csdn.net/u010652002/article/details/72676723

源码追踪我们参考上面博客

通道透明ARGB_8888(也就是我们最常用的 Bitmap 的格式)的一个像素占用 4byte,那么 rowBytes 实际上就是 4*width bytes。

屏幕densityDpi(480)

xhdpiDpi (320)

bitmapWidth * densityDpi / xhdpiDpi

bitmapHeight * densityDpi / xhdpiDp

4

= 8294400B 差不多7.9M左右

总内存: 8294400

view width: 1080

view height: 1572

bitmap width: 1080

bitmap height:1080

density: 3.0

dpi: 480

scaledWidth = int( 720* 480/ 320f + 0.5) = 1080

scaledHeight = int( 1280* 480 / 320f + 0.5) = 1920

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值