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

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

现在,我需要应用一些渐变色与笔划(如不同颜色的边框)。我将此设置为按钮的背景。
这就是我所期望的,我需要通过编程来实现。

最佳答案

将aRadialGradient添加到您的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);

嗯,我想我必须遵从@stinepike的GradientDrawable
GradientDrawable gd = new GradientDrawable();
gd.setColor(Color.RED);
gd.setCornerRadius(10);
gd.setStroke(2, Color.WHITE);
gd.setShape(GradientDrawable.OVAL);

09-26 18:17