使用aChartEngine获取饼图切片的值

时间:2011-09-20 15:48:45

标签: android pie-chart achartengine

我正在尝试开发一个包含饼图的Android应用程序。我使用aChartEngine来生成图形,但事实是我无法触摸/单击饼图的特定切片并获取相关数据!有人知道获取数据的方法吗? 这是一个简单的事情,每个图表框架都有,但我在javadoc上找不到一些可以做到的方法,我想知道这样的事情是否存在。 任何帮助都是宝贵的,提前谢谢。

4 个答案:

答案 0 :(得分:2)

此功能已在1.0.0版中添加,您可以使用SeriesSelection类获取点索引,系列indes,值和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();
      }
    }
  });

答案 1 :(得分:1)

AChartEngine SVN中的版本现在包含此功能。

您可以看到执行此操作here的代码示例。

答案 2 :(得分:0)

根据AChartEngine的作者 - 它还没有实现:

AChartEngine discussion group

您可以添加功能请求。

答案 3 :(得分: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);
相关问题