2012-04-08 264 views
2

我试图用Canvas.drawLine方法来绘制多边形的Android Canvas.drawLine不顺畅,并不一致

下面是我使用

Canvas canvas = new Canvas(cache); 
Paint paint = new Paint(); 
paint.setStrokeWidth(16); 
paint.setColor(this.currentDrawing.getColor()); 
paint.setFlags(Paint.ANTI_ALIAS_FLAG); 
systemCanvas.drawBitmap(cache, 0, 0, paint); 
paint.setStrokeCap(Cap.ROOUND); 
canvas.drawLine(from.getLeft(), from.getTop(), to.getLeft(), to.getTop(), paint); 

的代码,这是我得到的输出:

enter image description here

通知线条渲染的方式,他们的圆状,断裂,不能顺利加盟。我明白为什么会发生这种情况,但我不知道如何使它平滑一致。

任何帮助表示赞赏。

回答

2

请检查这个答案,因为它类似于你的问题:

Android How to draw a smooth line following your finger

请让我知道,如果这有助于!

+0

谢谢..我在提出问题之后就已经在路上工作了。这是一种奇怪的事情。但是,每当我陷入困境时,我都会很好地研究并发布SO,之后大部分时间我都会自己解决它。 无论如何给你+1和正确的答案:)谢谢 – kishu27 2012-04-08 19:32:37

+0

非常感谢!只是好奇,你正在创建什么样的应用程序?我曾想过用手势做些什么/我自己使用绘图/绘图库:) – 2012-04-09 00:43:35

7

你也可以做到这一点

mPaint.setAntiAlias(真);

+0

这样可以在使用数据样本(坐标)绘制线条后改进了绘图,但是这本身并不能解决问题。 – kishu27 2013-10-03 17:03:57

+0

是的,这就是为什么我提到“也”:) – usman 2013-10-09 10:58:38

0

您需要激活硬件加速。如果你不激活这个,你不能使用antialias,cap,join等方法。

+0

罚款,但这不会解决问题,因为我需要做坐标采样并加入他们,而不是在每个样本上绘制一个像素 – kishu27 2014-01-23 19:05:37