【问题标题】:Draw area between two lines using Canvas on Android在 Android 上使用 Canvas 在两条线之间绘制区域
【发布时间】:2012-12-05 20:01:01
【问题描述】:

我正在为我的应用程序开发一个简单的统计图形类。我已经尝试过 aChartEngine 和其他更多,但我更喜欢使用我自己的类。 我正在使用包含 Android 的 Canvas 类绘制图形,但问题是我不知道如何填充线条和底部边框之间的区域。 现在,矩形并没有填满所有区域,显然,你知道任何解决方案吗?非常感谢。

【问题讨论】:

    标签: android graphics canvas statistics


    【解决方案1】:

    使用Path,与Paint 一起调用.setStyle(Paint.Style.FILL);

    Path fillPath = new Path();
    fillPath.moveTo(0, 0); // Your origin point
    fillPath.lineTo(x1, y1); // First point
    // Repeat above line for all points on your line graph
    fillPath.lineTo(xN, yN); // Final point
    fillPath.lineTo(xN, 0); // Draw from final point to the axis ++
    fillPath.lineTo(0, 0); // Same origin point
    yourCanvas.drawPath(fillPath, /* Your paint */);
    

    ++ 感谢@TheCapn 的这一点。

    【讨论】:

    • 只是想在最后一次“lineTo”调用之前添加一点,你可能应该调用类似fillPath.lineTo(x,0); 这样的最后一行,如果在轴上方,不会减少留下未填充的区域。
    • @TheCapn 谢谢,我已将其添加到帖子中。对那个很好的调用(出于某种原因,我假设 lastPoint.y 将是 0。)
    • 您是否不需要致电fillPath.close() 或以任何方式结束行回到开头。还是lineTo 回到起点足以让Path 弄清楚。
    • @Doomsknight 我没有在我的任何代码中调用close()...这可能是最佳实践,但没有必要。
    猜你喜欢
    • 2022-01-17
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 2019-07-26
    • 2012-01-31
    • 1970-01-01
    相关资源
    最近更新 更多