当前位置: 首页 > 知识库问答 >
问题:

Android-Java中的LinearGradient多种颜色

狄赞
2023-03-14

我正在尝试在AndroidPlot的背景上绘制渐变,我所需要的只是一个绘画对象

所以我会使用这段代码:

int[] co = 新国际 []{颜色.红色,颜色.黄色,颜色.绿色,颜色.黄色,颜色.红色};

浮点数[]coP=新浮点数[]{0.1f,0.1f,0.6f,0.1f,0.1f};

      >Paint pa = new Paint();

      >pa.setAlpha(200);

      >pa.setShader(new LinearGradient(0,0,250,graphv.getHeight(),co,coP,Shader.TileMode.REPEAT));

但是背景只有一种颜色:红色。

我不知道为什么,或者如何修复它...

你有什么想法吗?

共有3个答案

孙京
2023-03-14

在AndroidPlot演示代码中有一个例子

// setup our line fill paint to be a slightly transparent gradient:
Paint lineFill = new Paint();
lineFill.setAlpha(200);
lineFill.setShader(new LinearGradient(0, 0, 0, 250, Color.WHITE, Color.BLUE, Shader.TileMode.MIRROR));
stepFormatter.setFillPaint(lineFill);
寇靖
2023-03-14

线性渐变文档

您可以指定颜色数组,LinearGradient类将自动绘制沿渐变线均匀分布的颜色。

示例:

float[] positions = null;
int[] colors = {
    Color.BLACK,
    Color.RED,
    Color.GREEN
};
paint.setShader(new LinearGradient(0f, 0f, (float)bounds.width(), 0f, colors, positions, Shader.TileMode.MIRROR));
钱震博
2023-03-14

医生说:

@参数位置可以为空。如果为空,则颜色在起点和终点之间均匀分布。如果不为空,则值必须以0开始,以1.0结束,中间值必须严格递增。

所以你可以

1) 置空

2)浮点数[]位置=新的浮点数[]{0.1f,0.3f,0.5f,0.7f,0.9f};
结果:
|--------|-------------------------|-----------------------------|-----------------------------|-------------------------|--------|
红色0.1红色-黄色0.3黄色-绿色0.5绿色-黄色0.7黄色-红色0.9红色

浮点[] 位置 = 新浮点[]{ 0f, 0.3f, 0.5f, 0.7f, 1f };
结果:
|------------------------|-----------------------------|-----------------------------|-------------------------|
0 红黄色 0.3 黄绿色 0.5 绿黄色 0.7 黄红色 1

 类似资料:
  • 我试图为我的TextView创建一个圆形背景,所以我创建了如下所示的形状样式。但是我需要有多种颜色和多种大小(而textSize保持不变),所以我需要设置样式中的宽度/高度。 根据我的理解…图层列表把所有的形状放在另一个上面?因为我需要在不同的地方调用它12次,所以拥有12个形状样式的XMLS似乎相当麻烦。

  • 问题内容: 这是我在stackoverflow.com上遇到的第一个问题,所以请原谅我做错了什么。 我想创建一个基本上像进度条的圆圈。现在,我想通过一些代码设置百分比。 我想要实现的是:https : //raw.github.com/psud/Melde-App/master/res/drawable- hdpi/circlemiddle.png 我的问题: 无法使用两种颜色的圆圈工作(已经在论

  • 这种效果该怎么去做呢?看着像是中间都没有数据,但是给0的话也不行

  • 问题内容: 我想根据百分比值计算颜色: 我该如何计算最后一件事?如果黄色出现在50%处就可以了。 我尝试了这个: 好吧,这行得通,但是我希望将50%左右的颜色在灰色背景上使用时会更浅一些。我该如何做到这一点? 谢谢! UPDATE 我试图将转换为YUV就像是在意见建议。但我仍然遇到同样的问题,即50%的天黑了。另外,在此解决方案中,我现在的白色为<5%。如果我不进行计算,只是稍微好一点,但是在<2

  • 问题内容: 所以我有一个带有火山的图像文件。其他所有内容均为0xFFFF00FF(不透明的洋红色)。我想将包含该颜色的每个像素替换为0(透明)。到目前为止,我的方法如下所示: 这工作正常,但似乎很慢。我见过有人以其他方式执行此操作,但是我不知道发生了什么。如果有人知道更好的方法,我非常想听听。 问题答案: 为了避免遍历像素,请更改基础ColorModel。这是一个例子。以下是作者使用原始Buffe

  • 问题内容: 我知道如何使用CSS3指定多个背景图片并使用不同的选项修改它们的显示方式。 目前,我有一个,它需要在左侧宽度的30%处使用不同的颜色: 而不是加载完全为灰色的图像,我该如何指定颜色而又没有其他s? 问题答案: 您真的不能—背景颜色完全适用于元素背景。保持简单。 您可以改为为背景定义带有锐利颜色边界的CSS渐变,例如