2016-06-09 5 views
5

Ich muss einen Kreis in einem Android-Canvas, basierend auf einer Farbverlaufsliste von Farben zeichnen. Ich habe es geschafft, es ohne den Gradienten zu zeichnen, als eine Reihe von Bögen, die jeweils eine der Farben in der Liste haben, wie es das folgende Bild zeigt.Zeichnen Sie einen Kreis in einer Leinwand mit mehreren Verlaufsfarben

enter image description here

Wie kann ich es mit einem tatsächlichen Gradienten ziehen? Ich versuchte mit dem folgenden Code, um einen Shader auf den Lack anzuwenden:

aber das Ergebnis ist wie folgt.

enter image description here

+0

Ich brauche genau diese Funktion in meinem app.Can Sie mir die volle Quelle für diese Implementierung bitte? – venky

Antwort

1

Ich schaffte es mit einem SweepGradient zu machen.

Shader shader = new SweepGradient(circleWidth/2, circleHeight/2, colorList, null); 
paint.setShader(shader); 
canvas.drawCircle(circleWidth/2, circleHeight/2, radius, paint); 

enter image description here