android_java中图片占用内存大小问题

android中图片占用内存大小问题一直有些疑惑。

今天动手测试了下,得出如下结论:

内存占用与图片面积成正比,

内存=M,  面积=A,  比值=K;

则  M=A*K;

比值K与图片类型有关,(png24带有透明部分图) K =(png24不带透明部分的图)K*2=(png8图(透明没影响))K*4


由此可见 

Bitmap.Config ARGB_8888   对应  png24带有透明图
Bitmap.Config RGB_565       对应  png24不带透明图

Bitmap.Config ALPHA_8       对应  png8图

Bitmap.Config ARGB_4444   (未知  android说它过时了)

根据api中Bitmap.Config介绍
以上3种每个像素分别占用K= 4(png24带有透明图)、2(png24不带透明图)、1(png8图
因此内存占用 M =像素宽 * 像素高 * K。(字节)
(补充: png8占内存与颜色数无关,无论256色还是1色)
(郁闷,api 12 有获取内存大小的方法  Bitmap .getByteCount() ,不知道是不是直接能获取到值,想试试,3.0以上模拟器各种郁闷,都运行不起来)

你可能感兴趣的:(android_java中图片占用内存大小问题)