我发现使用Canvas.drawPath(path,paint)比一行一行使用Canvas.drawLine()或者使用Canvas.drawLines()要慢得多。我不能提供确切的性能数据,但是我在Nexus 10上注意到使用路径绘制时速度非常慢(<10 FPS),而使用drawLines则更加流畅。这是否是某种实现错误或者可能有某个参数可以加速这个过程?目前,由于性能太弱,我无法使用drawPath()。
我发现使用Canvas.drawPath(path,paint)比一行一行使用Canvas.drawLine()或者使用Canvas.drawLines()要慢得多。我不能提供确切的性能数据,但是我在Nexus 10上注意到使用路径绘制时速度非常慢(<10 FPS),而使用drawLines则更加流畅。这是否是某种实现错误或者可能有某个参数可以加速这个过程?目前,由于性能太弱,我无法使用drawPath()。
strokePaint.setMaskFilter(new BlurMaskFilter(16f, BlurMaskFilter.Blur.NORMAL));
这使得性能非常糟糕。Canvas.drawPath 的执行时间为 45 毫秒。一旦我将其删除,执行时间在 2-4 毫秒之间。
如果您需要多次调用drawPath(),则需要在每次调用drawPath()之前调用path.reset()
抱歉无法留下评论。drawPath() 调用了更多的额外方法。Path 是一个对象而不是数组。你能想象出所有这些额外的调用吗?它是一个必须使用 Paint 的方法。对于快速绘制多行并不好用,它更适合于绘画。