将径向渐变设置为画布上圆的背景颜色

时间:2014-12-16 21:18:42

标签: android canvas gradient geometry android-drawable

我使用.drawCircle在画布上绘制一些圆圈。

我希望该圆的填充颜色为径向渐变(如果不可能,则为线性渐变)。

基本上我希望圆圈有一些深度。

我不太清楚如何做到这一点。

我知道我可以将渐变定义为可绘制的,但有没有办法将其设置为绘制圆的背景?

例如在WPF中我可以简单地定义一个LinearGradientBrush并定义它的停止点。

上下文的一些代码:

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);

paint.setStyle(Paint.Style.FILL_AND_STROKE);
paint.setStrokeWidth(4);

canvas.drawCircle((float) temp_dot.get_x(),
            (float) temp_dot.get_y(),
            (float) temp_dot.get_radius(),
            paint);

提前感谢您的时间。

1 个答案:

答案 0 :(得分:5)

在绘制圆圈之前,请使用以下代码:

paint.setShader(new RadialGradient(
  centerX,
  centerY,
  radius,
  centerColor,
  externalColor,
  Shader.TileMode.CLAMP
 ));
canvas.drawCircle(..., paint);

如果您想要更自定义的径向渐变,请参阅RadialGradient