2013-05-27 105 views
3

我觉得使用Canvas.drawPath(path,paint)比Canvas.drawLine()要慢一些,或者使用Canvas.drawLines()代替。 我无法给出确切的性能数据,但我注意到在Nexus 10上,通过使用路径,绘图非常缓慢(< 10 FPS),而使用drawLines则更加平滑。 是否有一些实现错误或者可能是一个参数来加速性能? 截至目前,我完全无法使用drawPath(),因为性能太弱。为什么Canvas.drawPath()这么慢?

回答

0

抱歉,不能发表评论。 drawPath()正在进行更多额外的调用。路径是一个 对象,而不是一个数组。你甚至可以想象所有的额外电话 是由。这是一个Paint所需的方法。 快速多行绘图不好。这意味着更多的绘画。

1

我还遇到了drawPath问题(特别是在我的Nexus 10上)。我的问题归结为我正在设置一个

strokePaint.setMaskFilter(new BlurMaskFilter(16f, BlurMaskFilter.Blur.NORMAL)); 

这使得表现可怕。为Canvas.drawPath执行45毫秒。一旦我删除它,我得到的执行时间在2-4毫秒之间