Android DrawArc SweepGradient超过360°

时间:2014-09-26 08:03:17

标签: android android-custom-view

我正在尝试制作一个颜色轮,允许用户在纯色或渐变之间进行选择。 用户还可以在车轮周围移动这些颜色。

问题在于渐变。当角度超过360°时,显示的颜色将返回到第一种颜色,而不是继续渐变。

我正在使用自定义视图,我将粘贴的代码是从onDraw方法调用的。

int start = Color.rgb((int)previous.startRed, (int)previous.startGreen, (int)previous.startBlue);
int end = Color.rgb((int)previous.endRed, (int)previous.endGreen, (int)previous.endBlue);
int[] colors = {start, end, end};
float from = from_angle / 360.0f;
float to = (from_angle + to_angle) / 360.0f;
float[] positions = {from,to, to};
Log.v("Print", "print positions " + positions[0] + " " + positions[1]);
Shader gradient = new SweepGradient (oval.centerX(), oval.centerY(),colors, positions);
paint.setShader(gradient);
canvas.drawArc(oval, from_angle, to_angle + 1, false, paint);

这张图片展示了我面临的问题。enter image description here

任何暗示都将受到赞赏。谢谢。

0 个答案:

没有答案