使用渐变绘制线条

3

我有多条线在不同的位置绘制。例如:

canvas.drawLine(startXLine1 ,stopXLine1, startYLine1, stopYLine1, paint)
canvas.drawLine(startXLine2 ,stopXLine2, startYLine2, stopYLine2, paint)

我希望每行都有如下渐变效果: enter image description here 但是我尝试后没有这个效果,只有从蓝色(左)到白色(右)的渐变效果,类似于这个: http://media.24ways.org/2011/verou/1.png。请帮我修改一下代码。
Shader shader = new LinearGradient(startXLine1, startYLine1, stopXLine1, stopYLine1, res.getColor(R.color.blue),  res.getColor(R.color.white), Shader.TileMode.CLAMP);

paint.setShader(shader);

有人能帮我解决这个问题吗?

1个回答

8
为了像您的图片一样填充背景,请执行以下操作:
Shader shader = new LinearGradient(0, 0, 0, h /*canvas height*/, res.getColor(R.color.blue),  res.getColor(R.color.white), Shader.TileMode.MIRROR /*or REPEAT*/);

paint.setShader(shader);

它仍然朝着错误的方向。我想要蓝色在上面,白色在下面,但我得到了蓝色在左边,白色在右边。 - rafaelasguerra
我已经编辑了答案,请使用更新的建议再试一次。请告诉我 :) - bonnyz
方向相等 - rafaelasguerra
这对我有效。请检查h不为零,或者发布您传递的坐标。 - bonnyz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接