Android – 在折线图下方填充颜色

Android – 在折线图下方填充颜色,第1张

概述我正在为我们的一个应用程序构建折线图.图表中的线部分工作正常,但现在我必须用颜色填充线下方的区域,如下图所示. 我正在使用此代码使用画布将线条绘制到位图上. List<Float> xCoordinates = (List<Float>) coordinates[0]; List<Float> yCoordinates = (List<Float>) coordinates[1]; 我正在为我们的一个应用程序构建折线图.图表中的线部分工作正常,但现在我必须用颜色填充线下方的区域,如下图所示.

我正在使用此代码使用画布将线条绘制到位图上.

List<float> xCoordinates = (List<float>) coordinates[0];    List<float> yCoordinates = (List<float>) coordinates[1];    for (int i = 0; i < xCoordinates.size(); i++) {        if (!firstSet) {            x = xCoordinates.get(i);            y = yCoordinates.get(i);            p.moveto(x,y);            firstSet = true;        } else {            x = xCoordinates.get(i);            y = yCoordinates.get(i);            p.lineto(x,y);        }    }    textureCanvas.drawPath(p,pG);

我需要知道的是,有没有办法轻松找到线下面的区域并使其成为一种颜色,或者我必须计算图形的3个点之间的每个区域并用颜色填充它?

我不能使用现有的图表库,如AchartEngine,ChartDroID,aFreeChart等.

解决方法 找到了解决方案

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

List<float> xCoordinates = coordinates.first;    List<float> 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);

结果看起来像这样

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

总结

以上是内存溢出为你收集整理的Android – 在折线图下方填充颜色全部内容,希望文章能够帮你解决Android – 在折线图下方填充颜色所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1130330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存