情况是这样的 - 我的根布局是 ScrollView - 布局中嵌入了具有多个绘图操作的自定义 View 我的问题是,如果布局被滚动,则 customview.ondraw() 被多次调用。由于 ondraw() 中有很多操作,我的性能受到了影响。
最好的策略是什么?
最佳答案
请参阅有关 View.setDrawingCacheEnabled() 的文档。请注意,您必须在 onDraw 实现中调用 getDrawingCache(),如果 getDrawingCache() 返回非空值,则绘制返回的位图。我不确定 ScrollView 是否会自动调用 setDrawingCacheEnabled。您将不得不尝试并找出答案。我认为是的;但您仍然需要在 onDraw 例程中调用 getDrawingCache()。
这会处理非硬件加速情况。
对于硬件加速 View ,请参阅 setLayerType 的文档。缓存硬件加速 View 实际上提供了性能改进远非假设,因此请谨慎行事。
关于Android 自定义 View 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14012638/