Android:グラフにAchartengineライブラリを使用していますが、AchartengineのグラフビューをAndroid XMLと統合することはできませんか?

StackOverflow https://stackoverflow.com/questions/4062161

  •  27-09-2019
  •  | 
  •  

質問

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

AchartengineのグラフAPIのXMLリソースファイルとそれを行う方法は可能ですか?

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

役に立ちましたか?

解決

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

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

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

Chartdemo/layout/xy_chart.xml ligh near line 27

<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 near near line 68

private GraphicalView mChartView;

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

chartdemo/src/org.achartengine.chartdemo.demo.chart/xychartbuilder.java

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

if (mChartView != null) {
  mChartView.repaint();
}

他のヒント

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

あなたはこのようにあなたの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();
      }
    }

だからここにすべてを見つけるのに十分な場所があります Achartengine. 。ダウンロードへのリンクが含まれます、

  1. achartengine-1.1.0-demo-source.zip achartengine 1.1.0デモプロジェクトソースコード。 5月15日168 KB 8149 5月15日
  2. achartengine-1.1.0-javadocs.zip achartengine 1.1.0 javadocドキュメント。 5月15日5月15日374 KB 3610
  3. achartengine-1.1.0.jar achartengine 1.1.0バイナリビルドライブラリ。 5月15日117 KB 5264 5月15日

今のところ最新のものです(この回答を投稿している間)。次に、新しいチャートファイルを追加するために、これらの簡単な手順に従ってください。

  • ダウンロードして追加します Achartengine-1.1.0.jar プロジェクトのlibセクションに
  • ファイルを右クリックして、画像のようにパスを構築するために追加します

    Add jar to your project

  • 以前の回答で定義するように、次のコードをクラスに追加します。

    private GraphicalView mChartView;
    private XYMultipleSeriesDataset dataset;
    private XYMultipleSeriesRenderer renderer;
    private BarChart.Type type;
    
    
     protected void onResume() {
          super.onResume(); 
          if (mChartView == null) {
            LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
            /*getBarChartView(android.content.Context context, XYMultipleSeriesDataset dataset, XYMultipleSeriesRenderer renderer, BarChart.Type type)
              Creates a bar chart view.*/
            mChartView = ChartFactory.getBarChartView(this, dataset, renderer, type);//tView(this,getBarDemoDataset(values),renderer,Type.DEFAULT);
            layout.addView(mChartView);
          } else {
            mChartView.repaint();
          }
        }
    
    • Achartengineapiのクラスの詳細を取得するには、ダウンロードしてください achartengine-1.1.0-javadocs.zip クリックして開きます index.html

    • achartengine-1.1.0-demo-source.zip すべてのチャートの参照を取得できるさらなる深い開発中に役立ちます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top