6

我发现使用 Canvas.drawPath(path,paint) 比连续使用 Canvas.drawLine() 或使用 Canvas.drawLines() 慢得多。我无法提供准确的性能数据,但我注意到在 Nexus 10 上,使用路径绘制非常慢(<10 FPS),而使用 drawLines 则更平滑。是否有一些实现错误或者可能是加速性能的参数?到目前为止,我根本不能使用 drawPath() 因为性能太弱了。

4

3 回答 3

2

我也遇到了 drawPath 的问题(尤其是在我的 Nexus 10 上)。我的问题归结为我正在设置

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

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

于 2014-02-21T03:22:21.467 回答
2

如果需要多次调用 drawPath(),则需要在调用 drawPath() 之前调用 path.reset()

于 2020-12-26T03:02:59.897 回答
0

抱歉不能发表评论。drawPath() 进行了更多的额外调用。Path 是一个对象,而不是一个数组。你能想象所有额外的电话吗?这是 Paint 所需的方法。它不适合快速多线绘制。它更多地用于绘画。

于 2013-08-10T18:57:44.923 回答