我有一个图表视图,它基本上是一个图像视图。我需要为此添加十字准线。当用户在我需要获取XY坐标的任何地方触摸图表时,将它们映射到我的数据集,最后用映射的值更新textview。因此,当用户移动十字准线时,我将使用交叉引导值动态更新textview。
我在图像上添加了一个onTouchListener并得到了XY坐标,但是将XY坐标映射到我的数据集(我在数据集中有多个TimeSeries)。如果我可以使用plot.getDomainCroshairValue()& plot.geRangeCroshairValue()获取数据集的值。
在使用AFreeChart库时,有人可以告诉我如何在Android中完成此操作吗?
Need to know when to use plot.handleClick(x, y, plotrendingInfo) ?
由于 Akhash
答案 0 :(得分:1)
来自javadoc:AFreeChart.handleClick()
/**
* Handles a 'click' on the chart. AFreeChart is not a UI component, so some
* other object (for example, {@link DemoView}) needs to capture the click
* event and pass it onto the AFreeChart object. If you are not using
* AFreeChart in a client application, then this method is not required.
*
* @param x
* x-coordinate of the click (in Java2D space).
* @param y
* y-coordinate of the click (in Java2D space).
* @param info
* contains chart dimension and entity information (
* <code>null</code> not permitted).
*/
public void handleClick(int x, int y, ChartRenderingInfo info) {
// pass the click on to the plot...
// rely on the plot to post a plot change event and redraw the chart...
this.plot.handleClick(x, y, info.getPlotInfo());
}
应该实现View的onTouchEvent(),并且当触摸事件发生时提供的MotionEvent对象应该被转换为Afreechart的handleClick(),而handleClick()又委托给Plot.handleClick()
XYPlot.handleClick()已经具有将X,Y协调转换为数据集X,Y值的转换机制。