首先我在下面展示我的观点。并给出一些解释:
在我的 ViewGroup 中,我有两个 GraphicalView,每个都共享相同大小的空间。我们只调用图表 A 上方和图表 B 下方的图表。
那我有几个问题:
- 如果我在图表 A 上移动一个 Action ,我怎样才能让图表 B 像我的手指在图表 B 上移动一样移动?
- 如果我在 chartA 上捏一下,chartB 也可以变自动吗?
- 我想为某些点添加一些回调函数? ACE 支持吗?
- 我不想在用户捏合时显示负数。我该如何说明这一点?
最后是我的图表代码:
mDataset.addSeries(series);
PointStyle style = PointStyle.CIRCLE;
renderer = buildRenderer(lineColor, style, true);
setChartSettings(renderer, "X", "Y", 0, 50, yMin, yMax, Color.WHITE,
Color.WHITE, title,chartColor);
GraphicalView chart = ChartFactory.getLineChartView(context, mDataset, renderer);
layout.addView(chart, new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
HashMap map = new HashMap();
和渲染器:
protected XYMultipleSeriesRenderer buildRenderer(int color,
PointStyle style,
boolean fill) {
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(color);
r.setPointStyle(style);
r.setFillPoints(fill);
r.setLineWidth(3);
renderer.addSeriesRenderer(r);
return renderer;
}
我随机选择所有我想要的数据。
最佳答案
- 您必须在
chartA
和每个panApplied
事件上注册一个PanListener
,只需执行以下操作:rendererB.setXAxisMin(rendererA .getXAxisMin());
最大 X 轴和 Y 轴相同,然后调用chartB.repaint();
- 同上,只是需要添加一个
ZoomListener
。 - 您可以设置点击监听器:
chartA.setOnClickListener();
- 请重新表述为一个单独的问题。
另请参阅 this向您展示如何使用上述 API 的代码。
关于Android AChartEngine graphicalView 分享事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16868489/