【问题标题】:Programmatically add Gradient with solid color and stroke以编程方式添加具有纯色和描边的渐变
【发布时间】:2013-03-11 22:06:29
【问题描述】:

目前我正在使用此代码添加颜色:

ShapeDrawable drawable = new ShapeDrawable(new OvalShape());
drawable.getPaint().setColor(color);

现在我需要对它应用一些渐变颜色以及描边(比如不同颜色的边框)。我将其设置为按钮的背景。

这是我所期望的,我需要以编程方式进行。

【问题讨论】:

    标签: android colors drawable gradient shape


    【解决方案1】:

    像这样将RadialGradient 添加到您的drawable

    Shader shader = new RadialGradient(x, y, radius, color0, color1, Shader.TileMode.REPEAT);
    drawable.getPaint().setShader(shader);
    

    显然,您可以互换LinearGradientSweepGradient 和任何参数。

    以下是添加笔画的方法:

    drawable.getPaint().setStrokeWidth(3);
    drawable.getPaint().setColor(Color.WHITE);
    drawable.getPaint().setStyle(Paint.Style.FILL_AND_STROKE);
    

    嗯,我想我必须使用GradientDrawable 来服从@StinePike:

    GradientDrawable gd = new GradientDrawable();
    gd.setColor(Color.RED);
    gd.setCornerRadius(10);
    gd.setStroke(2, Color.WHITE);
    gd.setShape(GradientDrawable.OVAL);
    

    【讨论】:

    • 谢谢 我的图像中有中风呢?我的意思是蓝色边框
    • 不,伙计,它不工作,角现在是矩形,而且我希望描边颜色不同,你能帮我解决一下吗
    • 这就是我的全部。当我看到你的请求时,我期待我最近一个项目中的 RadialGradient 示例为你工作。如果没有一点实验,我无法为您提供任何进一步的帮助。我希望这会有所帮助。祝你好运!
    • 最后一个也是最后一个问题我试过这个:GradientDrawable drawable = new GradientDrawable(Orientation.TOP_BOTTOM, new int[]{Color.RED, Color.GREEN});但我需要 CENTER 而不是 TOP_BOTTOM
    【解决方案2】:

    使用GradientDrawable 创建渐变

    你可以看到这个answer

    【讨论】:

    • 有颜色的笔画呢?
    • 渐变drawable中有一个setStroke方法
    • 是的,它现在可以工作了,但是如何使渐变绘制成椭圆形?
    • 在setShape方法中你可以将OVAL设置为常量。请先检查整个gradientdrawable doc
    • 一个问题.. 你为什么不以不同的方式创建形状作为 xml 并将其用作代码的背景?
    猜你喜欢
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多