我对 achartengine 图表有疑问 - 如此屏幕截图所示:
看起来 X 轴的底部填充过多,并且值是重复的(每个值的一个表示在适当的图表中,并且对平移做出正确反应,而另一个位于图表视图的底部,但是不能以任何方式操纵)。
这是用于创建图表的代码:
protected void onCreate(Bundle savedInstanceState) {
...
gDataset = new XYMultipleSeriesDataset();
gRenderer = new XYMultipleSeriesRenderer();
gRenderer.setApplyBackgroundColor(true);
gRenderer.setPointSize(10);
chart = new TimeBarChart(gDataset, gRenderer);
graphView = new GraphicalView(this, chart);
graphHolder.addView(graphView);
//Mode is just an internal enum
chart.setDateFormat(curMode == Mode.DAY ? "HH:mm dd.MM.yyyy" : "dd.MM.yyyy");
....
}
并填充它:
...
//some DB stuff goes here, result is the cursor
curSeries = new XYSeries("");
gDataset.addSeries(curSeries);
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setColor(Color.RED);
renderer.setPointStyle(PointStyle.POINT);
gRenderer.addSeriesRenderer(renderer);
while (!result.isAfterLast()) {
.....
curSeries.add(timestamp,value);
....
}
.....
graphView.invalidate();
graphView.repaint();
这是布局 XML 中图形持有者的视图定义(主容器当然是 RelativeLayout):
<LinearLayout
android:id="@+id/graphHolder"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:layout_alignParentTop="true"
android:minHeight="200dp">
</LinearLayout>
有几件事:
- 我正在使用 0.7 版本。
- TimeBarChart 类只不过是一个 TimeChart,只需简单地更改即可扩展 BarChart。代码是从 0.7 修订版复制而来。无论如何,我之前使用的是 ChartFactory#getTimeChartView() 并且结果是相同的 - 所以这不是问题的原因。
- 我试过检查 height 布局参数是否会导致问题,但事实并非如此。
- graphHolder 由 RoboGuice 注入。
- 在 2.3 模拟器中遇到了问题。
显然,我做错了什么,但我不知所措。任何帮助是极大的赞赏。
PS。我试图将其发布在 achartengine 组上,但看起来模组正在冬眠;)。