重要概念:
bitmap
生成过程:BitmapFactory (java-cpp-skia-bitmap)
inSampleSize:缩小的倍数
BitmapFactory.Options.inBitmap
字段 :decode过程中重用
分辨率是每英寸表示的像素点数量:每个像素点可以由多种色彩表示,包括2、4、8、16、24和32位色彩。
像素不是画质,根本只是决定清晰度的一个条件之一
色深是2的幂指数,是颜色深度,也是决定清晰度条件之一
坑点:
- api25,手动GC或者调用程序释放掉,并未生效,在下一次生成图像申请内存的时候,在释放掉上一次申请的内存。
Recycle 释放的原理:
api<2.3.3 采用引用计数
api>2.3.3 采用bitmapShader,才用的图片释放方法
- 屏幕大小相同,分辨率相同,在屏幕中效果是否相同?? 像素点相同, 像质可能不同,因为色深不一定相同。
- 尺寸太大的切图,会出现OOM,标准的解决方法
1 、
2种方法可以生成bitmap
layout ->bitmap
View -> bitmap
遗留的问题:
BitmapShader如何渲染圆角图片,圆角图片渲染原理?
参考资料: