次のように定義された SweepGradient があります
circle_paint.setShader(new SweepGradient(getWidth()/2, getHeight()/2, new int[] { circle_start_color, circle_end_color}, new float[] { 0f, 1f}))
として定義されたアーチに適用されます。
canvas.drawArc(circle_bounds, circle_start_perc*360f, circle_end_perc*360f, true, circle_paint);
これはうまくいきますが、画面の上部から描画を開始するにはアーチが必要です。
canvas.drawArc(circle_bounds, ((circle_start_perc*360f)-90f)%360, circle_end_perc*360f, true, circle_paint);
問題は、SweepGradient がまだ 0 度から開始しているように見えることです。270 度から開始する必要があります (円弧の描画で行われた変換と同様)。言い換えれば、白から青へのグラデーションがある場合、弧の上部を白く塗りつぶし、弧の最後の部分を青く塗りつぶす必要があります。これどうやってするの?