在我的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。
但这总是会在触摸时返回“无图表元素”吐司。为什么不识别系列和线?有人可以帮忙吗?
答案 0 :(得分:1)
您可以控制"可选缓冲区"可点击点的位置,即,在点击点中心的正方形的一半。 AChartEngine将搜索整个方形区域以找到可点击点的候选者并返回最接近的点。
mRenderer.setSelectableBuffer(circleRadiusInPixels);