我曾经说过,使用Canvas.drawPath(path,paint)会比连续的Canvas.drawLine()慢得多,或者使用Canvas.drawLines()。 我无法提供准确的性能数据,但我注意到在Nexus 10上使用路径绘图非常慢(<10 FPS),而使用drawLines则更加平滑。 是否有一些实现错误或者可能是一个参数来加速这种性能? 截至目前,我根本无法使用drawPath(),因为性能很差。
答案 0 :(得分:1)
我在使用drawPath时遇到了问题(特别是在我的Nexus 10上)。我的问题归结为我正在设置
strokePaint.setMaskFilter(new BlurMaskFilter(16f, BlurMaskFilter.Blur.NORMAL));
这使得表现很糟糕。 Canvas.drawPath执行45毫秒。一旦我删除它,我的执行时间在2-4毫秒
之间答案 1 :(得分:1)
如果需要多次调用drawPath(),需要在调用drawPath()之前先调用path.reset()
答案 2 :(得分:0)
抱歉,不能发表评论。 drawPath()正在进行更多的额外调用。路径是一个 对象而不是数组。你能算出所有额外的电话吗? 这是制作的。这是一种Paint需要的方法。这不好 快速多线绘图。这意味着更多的绘画。