私のアプリケーションにはグラフライブラリが必要で、achartengineグラフライブラリを使用しています。私のアプリでは、グラフが画面の50%である必要があり、他の部分は他の情報を表示するために使用されます。
AchartengineのグラフAPI用のxmlリソースファイルがあり、それを行う方法はありますか?
例を見つけようとしましたが、見つかりませんでした。サポートされていますか?
これは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();
}
ChartFactory
には2セットのAPIがあります。たとえばgetLineChartView()
およびgetLineChartIntent()
。したがって、前者はカスタマイズされたレイアウトに追加できるグラフィカルビューを取得するために使用され、後は意図を取得するために使用されます。上記の例では、DanはGraphicalView
を返すgetLineChartView()
APIを使用しています。
あなたはこのようにあなたの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 に関するすべてを見つけるのに十分な場所があります。ダウンロードへのリンクが含まれています、
- achartengine-1.1.0-demo-source.Zip AChartEngine 1.1.0デモプロジェクトのソースコード。 5月15日5月15日168 KB 8149
- achartengine-1.1.0-javadocs.Zip AChartEngine 1.1.0 javadocドキュメント。 5月15日5月15日374 KB 3610
- achartengine-1.1.0.jar AChartEngine 1.1.0バイナリビルドライブラリ。 5月15日5月15日117 KB 5264
現時点で最新のものです(この回答の投稿中)。新しいチャートファイルを追加するには、次の簡単な手順に従います。
次に、ファイルを右クリックして、イメージのようにビルドパスに追加します
前の回答で定義したように、次のコードをクラスに追加します。
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は、次のようなより深い開発中に役立ちますすべてのチャートを参照できます