Java 在相对图中绘制不正确
我对achartengine图形有一个问题-如此屏幕截图所示: 看起来X轴被赋予了太多的底部填充,并且值被复制。每个值的一个表示形式在图形中,并对平移做出正确反应,而另一个位于图形视图的底部,但无法以任何方式进行操作 以下是用于创建图形的代码:Java 在相对图中绘制不正确,java,android,achartengine,Java,Android,Achartengine,我对achartengine图形有一个问题-如此屏幕截图所示: 看起来X轴被赋予了太多的底部填充,并且值被复制。每个值的一个表示形式在图形中,并对平移做出正确反应,而另一个位于图形视图的底部,但无法以任何方式进行操作 以下是用于创建图形的代码: protected void onCreate(Bundle savedInstanceState) { ... gDataset = new XYMultipleSeriesDataset(); gRe
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主容器中的graph holder的视图定义,当然是相对的:
<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版本复制的。不管怎样,我以前使用过ChartFactorygetTimeChartView,结果是一样的——所以这不是问题的原因。
我试着检查height layout参数是否会导致问题,但事实并非如此。
graphHolder由RoboGuice注射。
该问题在2.3仿真程序中遇到。
显然,我做错了什么,但我不知道该怎么做。非常感谢您的帮助
顺便说一句,我试着把它贴在achartengine组上,但看起来mods正在冬眠 我终于有时间重新调查这个问题,并找到了答案 要点: 底部的条形图是图例。我的代码中有一个bug,导致它为每个数据点创建了一个系列,因此实际上是多条图例图形。这个系列没有名字,这增加了混乱 修复错误并添加setShowLegendfalse可以解决此问题 顺便说一句,我在评估时发现了这一点,我推荐它作为achartengine的替代品,因为图形可以用XML定义,并且可以比屏幕截图所显示的更自由地进行图形定制
不知何故,我没有注意到achartengine屏幕截图中的传奇,但我在AndroidPlot中认出了它们。是的,我现在确实觉得自己很愚蠢:。现在,你是在那个项目中使用AChartEngine还是AndroidPlot?achartengine目前正在使用,但主要是因为我已经投入了更多的时间来调整它。如果我能从我现有的知识开始,我会先给AndroidLot一个机会。并不是说阿喀丁净很可怕或是其他什么,只是安卓德洛特拥有答案中所述的优势。谢谢你分享你的经验。