Android: рисование дуги внутри круга

Я пытаюсь нарисовать дугу внутри круга, чтобы изобразить температуру, но мне трудно добиться этого. Во время поиска я нашел эти решения

Я не мог понять, для чего нужен метод масштабирования, и рисую более одной арки, что меня немного смутило

Этот пост дал ему фиксированный размер, где мне нужно, чтобы размер контролировался пользовательским представлением в моем макете XML

Отсюда я понял концепцию градусов, но не понял, как определить размер овала

Чего я достиг

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    int startTop = 0;
    int startLeft = 0;
    int endBottom = getHeight() / 2;
    int endRight = endBottom;// This makes an equal square.

    int centerX = getWidth() / 2;
    int centerY = getHeight() / 2;

    int upperEdgeX = (int) (centerX + getWidth() / 2 * Math.cos(270 * Math.PI / 180));
    int upperEdgeY = (int) (centerY + getWidth() / 2 * Math.sin(270 * Math.PI / 180));

    int bottomEdgeX = (int) (centerX + getWidth() / 2 * Math.cos(90 * Math.PI / 180));
    int bottomEdgeY = (int) (centerY + getWidth() / 2 * Math.sin(90 * Math.PI / 180));

    int leftEdgeX = (int) (centerX + getWidth() / 2 * Math.cos(180 * Math.PI / 180));
    int leftEdgeY = (int) (centerY + getWidth() / 2 * Math.sin(180 * Math.PI / 180));

    int rightEdgeX = (int) (centerX + getWidth() / 2 * Math.cos(0 * Math.PI / 180));
    int rightEdgeY = (int) (centerY + getWidth() / 2 * Math.sin(0 * Math.PI / 180));

    RectF rect = new RectF(startTop, startLeft, endRight, endBottom);
    canvas.drawCircle(centerX, centerY, getWidth() / 2, mBasePaint);


    canvas.drawCircle(centerX, centerY, getWidth() / 3, mCenterPaint); // White circle
}

ОБНОВИТЬ: Мне нужно, чтобы мой взгляд был похож на круговую диаграмму с пончиками, где средняя будет держать степень

ОБНОВЛЕНИЕ 2:

Я пытаюсь получить что-то подобное

Ответы на вопрос(1)

Ваш ответ на вопрос