【问题标题】:RadialGradient for drawing ArcRadialGradient 用于绘制 Arc
【发布时间】:2015-05-25 14:05:15
【问题描述】:

如何在弧线中绘制这种渐变(径向渐变)?

我已经画好了弧线:

canvas.drawArc(new RectF(-radius, -radius, -radius, radius), angle(begin), angle(end) - angle(begin), false, myPaint);

【问题讨论】:

    标签: android canvas gradient


    【解决方案1】:

    以下代码将生成径向渐变。

    public RadialGradient createRadialGradient(RectF oval, int centertColor, int edgeColor) {
        return new RadialGradient(oval.centerX(), oval.centerY(), oval.width(), centerColor, edgeColor, TileMode.CLAMP);
    }
    

    【讨论】:

    • :|我正在这样做,但它不起作用。如果我把 start = white ;结束 = 黑色。我所有的弧线都是灰色的
    • 您是否将渐变设置为 myPaint 上的着色器?
    • 是的,我是。 RadialGradient 渐变 = 新 RadialGradient(rectF.centerX(), rectF.centerY(), rectF.width(), res.getColor(R.color.yellow), res.getColor(R.color.black), Shader.TileMode。重复); myPaint.setShader(渐变);
    • 试试半径为 rectF.width()/2。由于我们在这里给出了直径,它可能只绘制黑色的上半部分。
    • 现在我可以看到一些以白色开头的东西,但还不够
    【解决方案2】:

    添加android:centerColor并使用与android:startColor相同的颜色并调整android android:gradientRadius

    <item>
        <shape android:shape="oval" >
            <gradient android:type="radial" android:gradientRadius="600"
    
                android:startColor="#f3fdfdfd" android:centerColor="#f3fdfdfd" android:endColor="#ff0303" />
    
    
        </shape>
    </item>
    

    【讨论】:

      最近更新 更多