2011-09-20 56 views
1

我試圖開發一個包含餅圖的android應用程序。我使用aChartEngine來生成圖形,但事實是我無法觸摸/點擊餅圖的特定片段並獲取相關數據!有人知道獲取這些數據的方法嗎? 這是一個簡單的事情,每個圖表框架都有,但我無法在javadoc上找到一些可以做到的方法,我想知道這樣的事情是否存在。 任何幫助將是寶貴的,在此先感謝。使用aChartEngine獲取餅圖切片的值

回答

1

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

您可以看到執行此操作的代碼示例here

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(); 
     } 
    } 
    }); 
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);