1、四种常见形式
Bitmap.Config的几个枚举类型
ARGB_8888、ARGB_4444、GRB_565、ALPHA_8
颜色模式 | 说明 | 每像素占用内存(byte) |
ARGB_8888 | 四通道高精度(32位) | 4 (8bit*4=32bite=4byte) |
ARGB_4444 | 四通道低精度(24位) | 2 (4bit*4 =16bit=2byte) |
RGB_565 | 仅存储颜色信息,无透明通道 | 2 (5+6+5=16bit=2byte) |
ALPHA_8 | 仅有透明通道,无颜色信息 | 1 (8bit=1byte) |
备注:A代表Alpha,R表示red,G表示green,B表示blue。图片所占内存大小 = 总像素*每个像素所占内存 |
安卓设备屏幕上默认的模式是RGB565(显示屏无法透明),常用的是ARGB_4444和ARGB_8888。
由于ARGB_4444模式下的图片质量太差,API19(android4.4)之后,被ARGB_8888替代,具体可查阅API。
2、颜色定义
颜色定义的几种方式:
int color=Color.BLACK;
int color=Color.parseColor("#000000");
int color=getResources().getColor(R.color.xxx)
除了在java中定义,也可以在xml中直接使用。
3、颜色渲染 PorterDuff
涉及的知识有点多,另起一篇,参见 自定义View之基础篇——PorterDuff
4、参考:
一张图片占多大内存的计算-android ----内含jpg和png选择说明
Android高效内存1:一张图片占用多少内存 ----内含图片所在目录对内存的影响的分析