web-dev-qa-db-ja.com

Android:グラフにAChartEngineライブラリを使用していますが、achartengineのグラフビューをAndroid xml?

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

AchartengineのグラフAPI用のxmlリソースファイルがあり、それを行う方法はありますか?

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

28
pitnal

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

デモのソースコードでは、既存のビューにグラフを埋め込む方法の例を見ることができます。

基本的に、アクティビティ記述子の.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();
}
45
Dan D.

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

15
pitnal

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

したがって、ここに AChartEngine に関するすべてを見つけるのに十分な場所があります。ダウンロードへのリンクが含まれています、

  1. achartengine-1.1.0-demo-source.Zip AChartEngine 1.1.0デモプロジェクトのソースコード。 5月15日5月15日168 KB 8149
  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日5月15日117 KB 5264

現時点で最新のものです(この回答の投稿中)。新しいチャートファイルを追加するには、次の簡単な手順に従います。

  • 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は、次のようなより深い開発中に役立ちますすべてのチャートを参照できます

2
rptwsthi