AchartEngine中addFillOutsideLine()填充溢出边界的Bug反馈
AchartEngine折线填充边界溢出Bug报告
问题现象
使用FillOutsideLine.Type.BOUNDS_BELOW填充类型时,当折线多次穿越y=0水平线,填充区域会溢出折线边界(见截图)。另外曲线底部也存在填充溢出,虽未影响当前业务但疑似同类Bug。
复现代码片段
private void initChart() { mCurrentSeries = new XYSeries("Sample Data"); mHorizon = new XYSeries("Horizon"); mDataset.addSeries(mCurrentSeries); mDataset.addSeries(mHorizon); mCurrentRenderer = new XYSeriesRenderer(); mCurrentRenderer.setPointStyle(PointStyle.CIRCLE); mCurrentRenderer.setFillPoints(true); mRenderer.addSeriesRenderer(mCurrentRenderer); mHorizonRenderer = new XYSeriesRenderer(); mHorizonRenderer.setColor(Color.GRAY); mRenderer.addSeriesRenderer(mHorizonRenderer); XYSeriesRenderer.FillOutsideLine fill = new XYSeriesRenderer.FillOutsideLine(XYSeriesRenderer.FillOutsideLine.Type.BOUNDS_BELOW); int transparentRed = Color.argb(0.10F, 1.0F, 0.0F, 0.0F); fill.setColor(transparentRed); mCurrentRenderer.addFillOutsideLine(fill); } private void addSampleData() { mHorizon.add(1, 0); mHorizon.add(7, 0); mCurrentSeries.add(1, 2); mCurrentSeries.add(2, 3); mCurrentSeries.add(3, 2); mCurrentSeries.add(4, -5); mCurrentSeries.add(5, 4); mCurrentSeries.add(6, -3); mCurrentSeries.add(7, 5); }
额外说明
- 完整复现代码可参考原提问的Gist内容
- 曾收到建议切换至
BOUNDS_ALL填充类型,但业务仅需单一边界填充,无法采用该方案 - 已自行修改AchartEngine副本的自定义边界逻辑,该修改未导致此Bug,当前问题使用官方最新版本复现
内容的提问来源于stack exchange,提问作者Phlip
相关产品推荐
相关产品推荐

