2016-06-05 21 views
0

Ich bin der Gestaltung eines benutzerdefinierten Widget, das eine Stärke ähnlich wie diese blaue haben: gauge (außer dies eine kontinuierliche Lehre und kein splited eins)Schließen zwei Bögen zusammen

Ich habe versucht, einen Weg zu zeichnen mit zwei Bögen:

private void drawGauge(Canvas canvas) { 
     canvas.save(Canvas.MATRIX_SAVE_FLAG); 
     float degreesToDraw = positionToDegree(); 
     gaugePath.addArc(secondArcRect, 90, degreesToDraw); 
     gaugePath.addArc(faceRect, 90, degreesToDraw); 
     gaugePath.close(); 
     canvas.drawPath(gaugePath, gaugePaint); 
     canvas.restore(); 
    } 

meine zwei Bögen gut gezeichnet sind, aber die gaugePath.close() funktionieren nicht, da sie den Weg mit der Lehre beginnen Punkte (untere Punkte) schließen vorbehalten. Was ich möchte, ist eine Linie zwischen den beiden Endpunkten der Bögen (die höheren Punkte) zu zeichnen.

Leider habe ich keine Ahnung, wie man ihre Koordinaten findet, um diese gewünschte Linie zu zeichnen.

FYI, zeichne ich derzeit so: enter image description here

Jede Idee/help? :)

Antwort

0

Das Problem war, dass faceRect und secondArcRect nicht ihre Mitte auf der y-Achse ausgerichtet hatte. Einfach das reparieren und sie die gleiche y-Position für ihren unteren rechten Punkt teilen lassen (damit sich die zwei Bögen am Anfang kreuzen und dann richtig füllen) ist genug