gpt4 book ai didi

java - achartengine 图形在relativelayout 中无法正确绘制

转载 作者:行者123 更新时间:2023-12-01 05:30:39 27 4
gpt4 key购买 nike

我对 achartengine 图表有疑问 - 如以下屏幕截图所示:

the broken layout

看起来 X 轴的底部填充太多,并且值是重复的(每个值的一个表示位于图表中,并且对平移做出正确 react ,而另一个表示位于图表的底部 View ,但不能以任何方式操作)。

这是用于创建图表的代码:

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 中图形持有者的 View 定义(主要容器当然是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() 并且结果是相同的 - 所以这不是问题的原因。
  • 我尝试检查高度布局参数是否导致了问题,但事实并非如此。
  • graphHolder 由 RoboGuice 注入(inject)。
  • 该问题是在 2.3 模拟器中遇到的。

显然,我做错了什么,但我不知道什么。非常感谢任何帮助。

PS。我试图将其发布到 achartengine 组,但看起来 mods 正在 hibernate 过冬;)。

最佳答案

我终于有时间重新研究这个问题,并弄清楚了。

要点:

底部的条形是图例。我的代码中有一个错误,导致它为每个数据点创建一个系列,因此在现实图例图形中存在多个“条”。该系列没有名字,这增加了困惑。

修复错误并添加 setShowLegend(false) 解决了该问题。

我在评估 AndroidPlot 时发现了这一点(顺便说一句,我推荐它作为 achartengine 的替代品,因为图表可以在 XML 中定义,并且可以比屏幕截图建议的更自由地进行图形定制)。

不知怎的,我没有注意到 achartengine 屏幕截图中的图例,但我在 AndroidPlot 中认出了它们。是的,我现在确实觉得很愚蠢:)。

关于java - achartengine 图形在relativelayout 中无法正确绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9038494/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com