получить значение среза круговой диаграммы с помощью aChartEngine - PullRequest
1 голос
/ 20 сентября 2011

Я пытался разработать приложение для Android, которое содержит круговую диаграмму. Я использовал aChartEngine для генерации графика, но дело в том, что я не могу коснуться / щелкнуть конкретную часть пирога и получить связанные данные! Кто-нибудь знает способ получить эти данные? Это простая вещь, которую имеет каждая инфраструктура диаграммы, но я не могу найти в javadoc какой-либо метод, который мог бы это сделать, и мне интересно, существует ли такая вещь. Любая помощь будет очень полезна, заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 24 июля 2012

Эта функция была добавлена ​​в версии 1.0.0, вы можете получить индекс-точку, индекс серии, значение и значение x, используя класс SeriesSelection. вы можете получить экземпляр, используя getCurrentSeriesAndPoint () вашей диаграммы GraphicalView.

  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 голос
/ 19 января 2012

Версия в AChartEngine SVN теперь содержит эту функцию.

Вы можете увидеть пример кода, делающего это здесь .

Dan

0 голосов
/ 23 апреля 2014
    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);
0 голосов
/ 21 сентября 2011

По словам автора AChartEngine - он еще не реализован:

Группа обсуждения AChartEngine

Вы можете добавить запрос на добавление функции.

...