1

円グラフを含む Android アプリを開発しようとしていました。グラフを生成するために aChartEngine を使用しましたが、円の特定のスライスに触れたりクリックしたりして関連データを取得することはできません。誰かがそのデータを取得する方法を知っていますか? これはすべてのチャート フレームワークに備わっている単純なことですが、javadoc でそれを実行できるメソッドを見つけることができず、そのようなものが存在するかどうか疑問に思っています。事前に感謝します。

4

4 に答える 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

AChartEngine SVNのバージョンには、この機能が含まれています。

ここでこれを行うコードの例を見ることができます。

ダン

于 2012-01-19T14:09:57.707 に答える
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 に答える
0

AChartEngine の作成者によると、まだ実装されていません。

AChartEngine ディスカッション グループ

機能リクエストを追加できます。

于 2011-09-20T20:59:16.163 に答える