2012-04-08 265 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