我正在阅读Android Universal Image Loader的源代码。
我无法理解 ImageScaleType 是什么。IN_SAMPLE_POWER_OF_2表示。
它说:“它是快速类型,更适合在列表/网格/画廊(和其他 AdapterView)中使用”。
为什么它很快,为什么它更适合在适配器视图中使用?
我正在阅读Android Universal Image Loader的源代码。
我无法理解 ImageScaleType 是什么。IN_SAMPLE_POWER_OF_2表示。
它说:“它是快速类型,更适合在列表/网格/画廊(和其他 AdapterView)中使用”。
为什么它很快,为什么它更适合在适配器视图中使用?
我对此不太确定,但我会假设这个枚举值描述了多少像素(“样本”),可能是为了计算输出图像的单个像素。
然后,计算通常会采用多个源样本的平均值,例如newValue = (srcValue[1] + srcValue[2] + ... srcValue[n]) / n
. 如果以及何时通过位移整数值是 2 的幂,则除以n
可以非常快速地计算出来。n
如果n
不是 2 的幂,则需要“真正的”除法运算,这在计算上要昂贵得多。
它是应用于图像的比例因子。如果设置为,2
则图像的宽度和高度将减半。这意味着它将使用更少的内存,但也会在屏幕上占据更小的“盒子”。