有没有办法在不使用Path的情况下使用Canvas绘制填充区域?

时间:2015-03-07 20:25:42

标签: android android-canvas custom-draw

我想知道是否有方法使用Android Canvas绘制填充区域(如填充多边形)而不使用 Path类并调用canvas.drawPath(...)。< / p>

我想在没有Path的情况下执行此操作的原因是因为我必须绘制非常大的数据集,而canvas.drawPath(...)不是硬件加速的,因此速度很慢。

由于硬件加速,使用canvas.drawLines(...)时的性能要好得多,但是我没有找到一种方法来绘制使用这种方法填充的多边形(即使线都已连接)。

使用paint.setStyle(Style.FILL)时,即使调用drawLines(...)也没有填充多边形。

有没有办法在不使用Path方法的情况下绘制填充多边形?

还有其他方式可以使用Canvas提高效果吗?

2 个答案:

答案 0 :(得分:0)

您可能希望查看opengl视图并将其用于所需的所有绘图。肯定会快死的。但是,您的所有绘图代码都需要重写。

答案 1 :(得分:0)

您可能需要执行以下操作:

Paint red = new Paint();

red.setColor(android.graphics.Color.RED);
red.setStyle(Paint.Style.FILL);

并将此颜色用于您的路径,而不是您的ARGB。确保路径的最后一点在第一点结束,这也是有道理的。