截至 2013 年,如果视图完全不透明,Android 是否足够智能以不绘制底层背景?如果是这样,您如何告诉它视图将始终是不透明的(在代码中,而不是在 XML 中)?我有ListView
一个不透明的背景,我想让它更平滑。
@RomainGuy有一篇 2009 年的旧帖子说它没有,但他说他计划添加该功能。他有吗?
截至 2013 年,如果视图完全不透明,Android 是否足够智能以不绘制底层背景?如果是这样,您如何告诉它视图将始终是不透明的(在代码中,而不是在 XML 中)?我有ListView
一个不透明的背景,我想让它更平滑。
@RomainGuy有一篇 2009 年的旧帖子说它没有,但他说他计划添加该功能。他有吗?
好的,我终于找到了@RomainGuy的博客。虽然我在那里找不到确切的答案,但它在一篇文章中有所介绍。他谈到了过度绘制,虽然没有明确说明,但暗示几乎没有进行任何优化。
从文章中可以看出,消除重叠绘图可以显着提升性能。SDK 中甚至还有一个工具可以检查发生了多少此类透支。
不是 100% 确定,但这是我的 2c:
Lint 仍然抱怨多余的背景。也就是说,如果您有一个完全由 ListView 填充的 FrameLayout 并在两者上设置背景颜色,它会抱怨。这向我表明,没有任何东西被优化掉。
此外,我没有进行任何真正的测试,这完全是轶事,但我“感觉”当从 Fire HD (4.0.3) 上的 FrameLayout 中删除背景颜色时,我看到了性能改进。