BitmapFactory inBitmap参数的理解

使用inBitmap前

BitmapFactory inBitmap参数的理解_第1张图片

使用inBitmap后

BitmapFactory inBitmap参数的理解_第2张图片

一开始哪怕我看了这个图我也不太理解,后来我猜想应该是这样:

当某个bitmap不可达的时候,这个时候就是处于了可回收的状态

所以我们如果要复用的话,应该会把不可达的bitmap先recycler,然后新的bitmap就会在这块区域创建

详细的使用方式可以看https://blog.csdn.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)

你可能感兴趣的:(Android)