AChartEngine:如何识别折线图中的触摸?

时间:2014-08-27 07:41:18

标签: android achartengine

在我的Android应用程序中,我尝试使用AChartEngine为折线图添加触摸。我用了这个简单的例子:

我在图表中添加了一个点击监听器

this.graphView = ChartFactory.getLineChartView(this, this.graphDataset,
        this.graphRenderer);
....

this.graphView.setOnClickListener(buttonClickListenerGraph);

并且在buttonClickListenerGraph方法中我这样做:

SeriesSelection seriesSelection = this.graphView.getCurrentSeriesAndPoint();
if (seriesSelection == null) {
  Toast.makeText(this, "No chart element", Toast.LENGTH_SHORT).show();
} else {
  // display information of the clicked point
  Toast.makeText(
      this,
      "Chart element in series index " + seriesSelection.getSeriesIndex()
          + " data point index " + seriesSelection.getPointIndex() + " was clicked"
          + " closest point value X=" + seriesSelection.getXValue() + ", Y="
          + seriesSelection.getValue(), Toast.LENGTH_SHORT).show();
}

我也启用了点击

this.graphRenderer.setClickEnabled(true);

其中graphRenderer是XYMultipleSeriesRenderer。

但这总是会在触摸时返回“无图表元素”吐司。为什么不识别系列和线?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您可以控制"可选缓冲区"可点击点的位置,即,在点击点中心的正方形的一半。 AChartEngine将搜索整个方形区域以找到可点击点的候选者并返回最接近的点。

mRenderer.setSelectableBuffer(circleRadiusInPixels);