Android:グラフにAchartengineライブラリを使用していますが、AchartengineのグラフビューをAndroid XMLと統合することはできませんか?
-
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. 。ダウンロードへのリンクが含まれます、
- achartengine-1.1.0-demo-source.zip achartengine 1.1.0デモプロジェクトソースコード。 5月15日168 KB 8149 5月15日
- 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日117 KB 5264 5月15日
今のところ最新のものです(この回答を投稿している間)。次に、新しいチャートファイルを追加するために、これらの簡単な手順に従ってください。
- ダウンロードして追加します Achartengine-1.1.0.jar プロジェクトのlibセクションに
ファイルを右クリックして、画像のようにパスを構築するために追加します
以前の回答で定義するように、次のコードをクラスに追加します。
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 すべてのチャートの参照を取得できるさらなる深い開発中に役立ちます