android - 以编程方式添加具有纯色和描边的渐变

标签 android colors drawable gradient shapes

目前我正在使用这段代码来添加颜色:

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

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

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

enter image description here

最佳答案

添加 RadialGradient像这样添加到您的 drawable 中:

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

显然,您可以互换 LinearGradient , SweepGradient , 以及任何参数。

这是添加笔画的方法:

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);

关于android - 以编程方式添加具有纯色和描边的渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15563761/

相关文章:

html - 如何表示 4 位和 5 位十六进制颜色代码?

android - Android 上设置操作按钮图标的名称是什么?

android - 使用可绘制对象动画图像

Android 在热点启用设备上发送 UDP 广播

java - Activity 必须导出或包含 Intent 过滤器

android - 为 ImageView 重复调用时,适用于 Android 的 Picasso 库行为不一致

colors - 给定灰度值,什么颜色提供最高的视觉对比度?

java - 用 3 种颜色给三角形上色

android - 彩色图像变成没有颜色,只有可绘制的灰色矢量?

android - 平板电脑布局大和土地之间的区别?