如何捕捉移动十字准线AFreeCharts的十字准线坐标?

时间:2012-03-07 20:49:24

标签: android view charts listener jfreechart

我有一个图表视图,它基本上是一个图像视图。我需要为此添加十字准线。当用户在我需要获取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

1 个答案:

答案 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值的转换机制。