2016-06-05 3 views
0

Я проектирование пользовательских виджетов, которые имеют калибр, подобный этому синий: gauge (кроме это непрерывный манометр и не расщепляется один)Закрыть две дуги вместе

Я попытался нарисовать путь с двумя дугами:

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

мои две дуги хорошо прорисованы, но gaugePath.close() не работают, как освобожденный, так как она закрывает путь с датчиком запуска точек (нижние точки). Я хочу провести линию между двумя конечными точками дуг (высшие точки).

К сожалению, я не знаю, как найти их координаты, чтобы нарисовать эту желаемую линию.

FYI, я в настоящее время рисования это: enter image description here

Любая идея/помощь? :)

ответ

0

Проблема заключалась в том, что faceRect и secondArcRect не центрировали их по оси y. Просто фиксируйте это и сделайте их разделяющими одно и то же положение y для их нижней правой точки (чтобы две дуги пересекались в начале и затем заполнялись должным образом) достаточно

Смежные вопросы