我正在尝试在AndroidPlot的背景上绘制渐变,我只需要一个油漆对象。
所以我会使用这段代码:
int [] co = new int [] {Color.RED,Color.YELLOW,Color.GREEN,Color.YELLOW,Color.RED};
float [] coP = new float [] {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));
但背景只有一种颜色:RED。
我不知道为什么,或者如何解决它..
你有什么想法吗?
答案 0 :(得分:0)
AndroidPlot中有一个例子demo code
// 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);
答案 1 :(得分:0)
医生说:
@param位置可能为NULL。如果为NULL, 颜色在起点和终点之间均匀分布。 如果不为null,则值必须以0开头,以1.0结尾,并且 中间值必须严格增加。
所以您可以
1)设置为空
2)float [] position = new float [] {0.1f,0.3f,0.5f,0.7f,0.9f};
结果:
| -------- | ----------------------------- | -------------- --------------- | ----------------------------- | ---- --------------------- | -------- |
红0.1红黄0.3黄绿0.5绿黄0.7黄红0.9红
OR
float []位置=新的float [] {0f,0.3f,0.5f,0.7f,1f};
结果:
| ------------------------ | ------------------------ ----- | -------------------------------------------- || -------------- ----------- |
0红黄0.3黄绿0.5绿黄0.7黄红1
答案 2 :(得分:0)
您可以指定颜色数组,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));