Lineargradient wird Offset von der angegebenen Position gezeichnet

9

Ich habe einen Farbverlauf mit einem Lineargradient mit diesem Code gemacht: (Ich weiß, dass es mit Color.parseColor einfacher hätte gemacht werden können, aber das muss so sein für das, was ich vorhabe. Ich kann auch keinen Zeichensatz verwenden.)

%Vor%

Was dieses Ergebnis mit leicht versetzten Farben erzeugt, ist die grüne Fläche zu klein und die blaue Fläche ist zu groß verglichen mit dem erwarteten Ergebnis.

Ich habe alles überprüft. Ich habe versucht, new float[]{0f, 1/6f, 2/6f, 3/6f, 4/6f, 5/6f, 1f} anstelle von null für das Argument positions zu verwenden, dasselbe Ergebnis. Dies könnte auch ein Fehler sein.

Beachten Sie, dass dies kein Duplikat von diesem Beitrag ist noch dieses . Hier handelt es sich um inkorrekte Gradientenstopps, die im Code gesetzt werden, was nicht mein Fall ist. Es könnte verwandt sein mit diesem aber ich sehe nicht wie.

BEARBEITEN: Vielleicht könnte dies lösbar sein, indem ungleiche Positionen auf Farben gesetzt werden, aber wie kann ich diese genauen Positionen berechnen?

    
Nicolas Maltais 02.12.2016, 01:27
quelle

1 Antwort

3

Ich habe gearbeitet, um das Ganze mehr als 3 Stunden zu lösen und gut ... es stellte sich heraus, dass es fast nichts war. Und es war in meinem Code. Das Schlimmste ist, dass ich ein Kopfgeld hinzugefügt habe und es 15 Minuten später gelöst habe.

Ich zeichnete den Verlauf in einer Ansicht mit einer bestimmten Auffüllung und anstelle von diesem

%Vor%

Ich musste das tun:

%Vor%

Irgendwie beginnt der Farbverlauf vor dem Padding, das ich meiner Ansicht hinzugefügt habe, bei (0, 0), was 10 Grad nach links von meinem Gradientenstart ist, was den Offset verursacht.

Es macht jetzt alles Sinn.

    
Nicolas Maltais 05.12.2016, 01:44
quelle

Tags und Links