Вы можете изменить положение и значения цвета.

арисовать дугу с помощью шейдера, такого как SweepGradient?

Все мои примеры берут объект Paint:

Paint lightRed = new Paint();
lightRed.setAntiAlias(true);
lightRed.setStyle(Style.STROKE);
lightRed.setStrokeWidth(12);
lightRed.setColor(0xFFCC0000);
...
canvas.drawArc(rectf, -90, 360, false, lightRed);

Не думаю, что это имеет значение, но я использую его для рисования на виджет рабочего стола

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

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