找到了解决方案

我首先绘制了渐变,之后我绘制了折线图,并通过在折线后面创建另一条路径并在最后将其关闭来擦除整条线.之后,我将区域涂成透明的,以擦除渐变的顶部.

List xCoordinates = coordinates.first;

List yCoordinates = coordinates.second;

for (int i = 0; i < xCoordinates.size(); i++) {

if (!firstSet) {

x = xCoordinates.get(i);

y = yCoordinates.get(i);

linePath.moveTo(x, y);

erasePath.moveTo(x, 0);

erasePath.lineTo(x, y);

firstSet = true;

} else {

x = xCoordinates.get(i);

y = yCoordinates.get(i);

linePath.lineTo(x, y);

erasePath.lineTo(x, y);

}

}

erasePath.lineTo(getWidth(), y);

erasePath.lineTo(getWidth(), 0);

erasePath.lineTo(0, 0);

getTextureCanvas().drawPath(erasePath, clear);

getTextureCanvas().drawPath(linePath, pG);

结果看起来像这样

另一种方法是精确地跟踪路径并剪切底部边缘,然后在第二条路径内绘制渐变.这将得到相同的结果,但图表上方的所有内容都将保留,并且不会删除任何内容.

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐