首页 文章

使用aChartEngine获取饼图切片的值

提问于
浏览
1

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

4 回答

  • 2

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

    AChartEngine discussion group

    您可以添加功能请求 .

  • 0

    在1.0.0版中添加了此功能,您可以使用SeriesSelection类获取point-index,series indes,value和x-value . 您可以使用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

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

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

  • 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);
    

相关问题