BitmapFactory inBitmap参数的理解
使用inBitmap前
使用inBitmap后
一开始哪怕我看了这个图我也不太理解,后来我猜想应该是这样:
当某个bitmap不可达的时候,这个时候就是处于了可回收的状态
所以我们如果要复用的话,应该会把不可达的bitmap先recycler,然后新的bitmap就会在这块区域创建
详细的使用方式可以看https://blog.****.net/ohehehou/article/details/40948465
更具体点分析,在RecyclerView中
假如一个4x7的图片显示app
如果使用RecyclerView的话,界面的上边会有隐藏的两行,下边也会有隐藏的两行用于预显示
所以一共是4x9
当你滑到某个地方,有36个item是处于显示状态的
所以bitmap是被引用的
当你滑到另外的地方,会进行一个rebind
那么就有部分item bind了另外的bitmap的情况
也就是说,因为rebind机制,所以一直只有36个bitmap是会被引用的
在滑动的过程中,只是引用了不同的bitmap
再配合inBitmap参数
这就意味着哪怕你有1W张图片
也只会占用36张图片的内存区域!
这样一来你可以感受到它的威力了吗???
(这是我面试时候问到的一个题
bitmap优化主要在
1.尺寸压缩
2.颜色质量
3.inBitmap
4.cache)