2012-04-08 4 views
2

Ich versuche Canvas.drawLine Methode zu verwenden, zu zeichnen ist ein PolygonAndroid Canvas.drawLine nicht glatt, nicht im Einklang

Hier ist der Code, den ich

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); 

bin mit Und dies ist die Ausgabe, die ich erhalte :

enter image description here

Beachten sie die Art und Weise die Linien machen, sie auf den runden Formen brechen und kommen nicht reibungslos. Ich verstehe, warum es passiert, aber ich weiß nicht, wie man es glatt und konsistent macht.

Jede Hilfe wird geschätzt.

Antwort

2

Bitte überprüfen Sie diese Antwort, weil es auf Ihre Frage ähnelt:

Android How to draw a smooth line following your finger

Bitte lassen Sie mich wissen, ob das hilft!

+0

danke .. Ich arbeitete auf dem Weg bereits nach dem Aufwerfen der Frage. Das ist eine komische Sache. Aber wenn ich auf ein Problem stoße, recherchiere ich gut und schreibe auf SO, wonach ich die meiste Zeit selbst löse. Geben Sie eine +1 und richtige Antwort sowieso :) .. Danke – kishu27

+0

Vielen Dank! Nur neugierig, welche Art von App erstellen Sie? Ich habe darüber nachgedacht, etwas mit Gesten zu tun/die Zeichen-/Malbibliothek selbst zu verwenden :) –

7

Sie können auch diese

mPaint.setAntiAlias ​​(true) tun wollen;

+0

Dies verbessert die Zeichnung, nachdem ich die Linien mit Proben der Daten (Koordinaten) gezeichnet habe, aber dies allein würde das Problem nicht lösen. – kishu27

+0

ja das ist, warum ich "auch" erwähnt habe :) – usman

0

Sie müssen die Hardwarebeschleunigung aktivieren. Wenn Sie dies nicht aktivieren, können Sie nicht die Methode der Antialias, Kappe, Join usw. verwenden.

+0

gut, aber dies wird das Problem nicht lösen, da ich Stichproben von Koordinaten tun musste und sie beitreten, anstatt ein Pixel auf jeder Probe zu zeichnen – kishu27