我正在尝试开发一个包含饼图的 android 应用程序。我使用 aChartEngine 来生成图表,但问题是我无法触摸/单击饼图的特定切片并获取相关数据!有人知道获取该数据的方法吗?这是每个图表框架都有的一件简单的事情,但我在 javadoc 上找不到一些可以做到这一点的方法,我想知道是否存在这样的事情。任何帮助都是宝贵的,在此先感谢。
问问题
1857 次
4 回答
2
该功能在 1.0.0 版本中添加,您可以使用 SeriesSelection 类获取点索引、序列索引、值和 x 值。您可以使用 GraphicalView 图表的 getCurrentSeriesAndPoint() 获取实例。
mChartView = ChartFactory.getPieChartView(this, mSeries, mRenderer);
mRenderer.setClickEnabled(true);
mRenderer.setSelectableBuffer(10);
mChartView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SeriesSelection seriesSelection = mChartView.getCurrentSeriesAndPoint();
if (seriesSelection == null) {
Toast
.makeText(PieChartBuilder.this, "No chart element was clicked",
Toast.LENGTH_SHORT)
.show();
} else {
Toast.makeText(
PieChartBuilder.this,
"Chart element data point index " + seriesSelection.getPointIndex()
+ " was clicked" + " point value=" + seriesSelection.getValue(),
Toast.LENGTH_SHORT).show();
}
}
});
于 2012-07-24T07:52:55.990 回答
1
于 2012-01-19T14:09:57.707 回答
0
于 2011-09-20T20:59:16.163 回答
0
mChartView = ChartFactory.getPieChartView(getActivity(),mSeries,mRenderer);
mChartView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SeriesSelection seriesSelection =mChartView.getCurrentSeriesAndPoint();
if (seriesSelection == null) {
} else {
for (int i = 0; i <mSeries.getItemCount(); i++) {
mRenderer.getSeriesRendererAt(i).setHighlighted(i == seriesSelection.getPointIndex());
}
mChartView.repaint();
// Toast.makeText( getActivity(), "Chart data point index " + seriesSelection.getPointIndex() + " selected" + " point value=" + seriesSelection.getValue(), Toast.LENGTH_SHORT).show();
}
}
});
mRenderer.setClickEnabled(true);
于 2014-04-23T05:49:30.870 回答