I need to draw a circle in an Android canvas based on a gradient list of colors. I managed to draw it without a gradient, like a set of arcs, each of which has one of the colors in the list, as shown in the following image.

How can I draw it using the actual gradient? I tried using the following code to apply a shader to paint:
Shader shader = new LinearGradient(0, 0, circleWidth, circleHeight, colorList, null, Shader.TileMode.MIRROR); paint.setShader(shader); canvas.drawCircle(circleWidth / 2, circleHeight / 2, radius, paint);
but the result is as follows.

source share