哪一个更快的颜色过滤或在Android中使用不同的drawable?

时间:2016-10-13 20:55:37

标签: android android-drawable colorfilter

我在recyclerview行项目上使用了图标。我在android中使用 Color Filter 选项更改了图标的颜色,但我想知道哪一个是更快更好

  • 不同颜色的drawables
  • (运行时)白色滤色镜 drawable icon

我已经在白色drawable上使用了颜色过滤,但它有时不会出现在列表行中,直到刷新recyclerview,所以我只想考虑使用不同的drawables。 谢谢你的兴趣...

2 个答案:

答案 0 :(得分:2)

很难说,但我会说更改drawable更快,这就是为什么我认为:

  • 为了过滤图像,系统必须从RAM读取每个像素,转换每个RGB组件以添加色调(它不像添加+3那样简单。像素),然后写每个像素

  • 更改drawable意味着从闪存中读取并将其加载到ram中

现在的问题是,移动设备上的闪存存储速度非常快,所以我认为加载速度比色彩图像更快。

但这取决于你如何创建布局。如果您加载图像,如果其他元素在您更改drawable时更改位置,Android系统将重新计算整个布局。如果新的drawable与最后一个相同,我不认为他们编写代码来保持布局相同,这将涉及比简单着色更多的计算。

答案 1 :(得分:1)

颜色过滤更好,因为它使用GPU(因此它更快)并且它可以摧毁你的最终apk的大小但是有时使用硬件加速器可以使你的应用程序滞后和缓慢因为内存泄漏,可绘制的大小,糟糕的设计和......