Graphview中的StaticLabelsFormatter和setXAxisBoundsManual问题

时间:2017-12-10 16:41:29

标签: android android-graphview

我在Android中使用Graphview。在我的图表中,我正在显示带有一些自定义静态标签的条形图。

如果我没有手动调整Xbounds,则会显示静态标签,但它们不会放在条形图的中间。这些酒吧也没有适当的间距。

series.resetData(graphDataPoints.toArray(new GraphDataPoint[graphDataPoints.size()]));
StaticLabelsFormatter mLabelsFormatter = new StaticLabelsFormatter(graph);
mLabelsFormatter.setHorizontalLabels(horizontalLabels.toArray(new String[horizontalLabels.size()]));
mGridLabelRenderer.setLabelFormatter(mLabelsFormatter);

如果我手动调整Xbounds,那么条形图会很好地显示,但静态标签会失真。就我而言,一个标签不会出现。

series.resetData(graphDataPoints.toArray(new GraphDataPoint[graphDataPoints.size()]));
graph.getViewport().setXAxisBoundsManual(true);
graph.getViewport().setMinX(series.getLowestValueX() -0.5);
graph.getViewport().setMaxX(series.getHighestValueX() +0.5);
StaticLabelsFormatter mLabelsFormatter = new StaticLabelsFormatter(graph);
mLabelsFormatter.setHorizontalLabels(horizontalLabels.toArray(new String[horizontalLabels.size()]));
mGridLabelRenderer.setLabelFormatter(mLabelsFormatter);

请帮忙!

1 个答案:

答案 0 :(得分:1)

在我的情况下,问题是我将DataPoints创建为DataPoint(i+1,y),因此在水平方向上存在偏移。然后,将minX放入0,将maxX放入NBRBARS+1,这样您就可以看到所有条形。

为补偿标签,我必须在数组的每一侧添加一个" "空间,即String labels[] = {" ", "label 1", "label 2", " "}