Scrollview优化

HaM*_*ReD 7 optimization android view

我有一个包含自定义视图的scrollview.自定义视图大于屏幕区域并正确绘制.

但是滚动视图往往会在滚动时不停地调用onDraw(),而我似乎无法使其平滑.

我使用ScrollView.getDrawingRect()来计算屏幕的可见部分并仅绘制到它,但它仍然返回整个视口(因此它被优化为不绘制屏幕外区域),而不是最后位置和当前之间的增量一.理想情况下,我只想绘制delta,而不是整个可见窗口.

如果有人能指出我有关如何使用绘图缓存的更多信息,如果这将有助于优化滚动,我很乐意实现它,或任何其他可能的解决方案,将非常感激.

Jos*_*arl 5

滚动内容时,需要重新绘制整个视口,因为所有内容都已移动.我认为没有什么需要做的来优化ScrollView- 如果滚动速度慢,那么自定义视图的绘制方法太慢了.

尽量避免在绘图方法中创建对象,这通常是绘图性能差的主要原因.

编辑:此外,滚动视图可以快速向上或向下快速显示仍然在屏幕上绘制的旧内容,然后请求仅重绘屏幕的"新"部分.(仅适用于不透明视图).