【问题标题】:Setting a radial gradient as the background color of a circle on canvas将径向渐变设置为画布上圆形的背景颜色
【发布时间】:2015-02-15 07:43:56
【问题描述】:

我使用 .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);

提前感谢您的宝贵时间。

【问题讨论】:

    标签: android canvas gradient geometry android-drawable


    【解决方案1】:

    在画圆之前,使用以下代码:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 2019-03-01
      相关资源
      最近更新 更多