Ich habe eine SweepGradient definiert alsAndroid SweepGradient
circle_paint.setShader(new SweepGradient(getWidth()/2, getHeight()/2, new int[] { circle_start_color, circle_end_color}, new float[] { 0f, 1f}))
auf einen Bogen angelegt, definiert als
canvas.drawArc(circle_bounds, circle_start_perc*360f, circle_end_perc*360f, true, circle_paint);
Diese workes gut, aber ich brauche den Bogen von der Spitze zu starten auf dem Bildschirm zeichnen,
dhcanvas.drawArc(circle_bounds, ((circle_start_perc*360f)-90f)%360, circle_end_perc*360f, true, circle_paint);
das Problem ist, dass der SweepGradient bei 0 Grad noch zu beginnen scheint, und ich brauche es zu starten 270 Grad (ähnlich der Übersetzung auf der Zeichnung des Bogens). Mit anderen Worten, wenn ich einen Farbverlauf von Weiß zu Blau habe, brauche ich die Spitze des Bogens weiß gestrichen und den letzten Teil des Bogens blau. Wie kann ich das machen?
Dank. Ich habe gerade die Leinwand gedreht, bevor ich den Bogen gezeichnet habe und danach die Leinwand restauriert habe, wie ein Zauber :) – BOENDAGGER
Die Shader Rotation war ein ausgezeichneter Vorschlag. Entlastet Sie von dem, was @BOENDAGGER mit dem 'save' /' restore' gemacht hat. Stellen Sie die Shader-Rotation einfach einmal ein und Sie sind fertig. – bcorso