28

私のアプリケーションにはグラフ ライブラリが必要で、achartengine グラフ ライブラリを使用しています。私のアプリでは、グラフが画面の 50% のみである必要があり、他の部分は他の情報を表示するために使用されます。

achartengine のグラフ API の xml リソース ファイルとその方法を教えてください。

例を見つけようとしましたが、見つかりませんでした。サポートされていますか?

4

4 に答える 4

45

これは AChartEngine の FAQ です。AChartEngine デモ アプリケーションは、ここからダウンロードできます: AChartEngine デモ

デモ ソース コードでは、チャートを既存のビューに埋め込む方法の例を確認できます。

基本的に、アクティビティ記述子 .xml ファイルでは、チャートのプレースホルダーとして以下を定義しています。もちろん、他のユーザー インターフェイス コンポーネントは、このレイアウトと一緒に使用できます。

27 行目付近の ChartDemo/layout/xy_chart.xml

<LinearLayout
    android:id="@+id/chart"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="horizontal" />

ローカル変数を定義します。

ChartDemo/src/org.achartengine.chartdemo.demo.chart/XYChartBuilder.java 行 68 付近

private GraphicalView mChartView;

アクティビティの onResume() メソッドでインスタンス化します。

ChartDemo/src/org.achartengine.chartdemo.demo.chart/XYChartBuilder.java 行 163 付近

protected void onResume() {
  super.onResume();
  if (mChartView == null) {
    LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
    mChartView = ChartFactory.getLineChartView(this, mDataset,
mRenderer);
    layout.addView(mChartView, new LayoutParams
(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    ...
  } else {
    mChartView.repaint();
  }
}

新しいデータが追加されるたびに (この場合、ユーザーが「追加」ボタンを押すと、現在のシリーズに新しいポイントが追加され、次のようになります。

ChartDemo/src/org.achartengine.chartdemo.demo.chart/XYChartBuilder.java 行 147 付近

if (mChartView != null) {
  mChartView.repaint();
}
于 2010-11-02T16:15:25.990 に答える
15

には 2 つの API セットがありますChartFactory。たとえば。getLineChartView()getLineChartIntent()。したがって、前者はカスタマイズされたレイアウトに追加できるグラフィカル ビューを取得するために使用され、後でインテントを取得するために使用されます。上記の例で、Dan はgetLineChartView()を返す API を使用しましたGraphicalView

于 2010-11-19T16:19:26.690 に答える
8

このようにxmlを書くことができます...

<LinearLayout 
android:layout_below="@+id/btn"
android:id="@+id/chart" android:orientation="horizontal"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_weight="1">

</LinearLayout>

そしてJavaコードスニペットは

   protected void onResume() {
      super.onResume();
      if (mChartView == null) {
        LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
        mChartView = ChartFactory.getBarChartView(this,getBarDemoDataset(values),renderer,Type.DEFAULT);
        layout.addView(mChartView);


      } else {
        mChartView.repaint();
      }
    }
于 2011-05-30T06:29:25.723 に答える