Android: Ich verwende AChartEngine Bibliothek für Grafiken, aber nicht in der Lage achartengine die graphische Darstellung mit Android xml zu integrieren?
-
27-09-2019 - |
Frage
Meine Anwendung erfordert Graph-Bibliothek, und ich bin mit achartengine Graph-Bibliothek. Meine app erfordert Graph nur 50% des Bildschirms zu sein und andererseits verwendet wird, einige andere Informationen angezeigt werden soll.
Ist es möglich, XML-Ressourcendatei für achartengine der Graph APIs hat und wie es zu tun?
Ich habe versucht, ein Beispiel zu finden, aber fand es nicht. Ist es unterstützt oder nicht?
Lösung
Dies ist eine FAQ für AChartEngine. Die AChartEngine Demo-Anwendung zum Download zur Verfügung hier: AChartEngine Demo
In der Code Demo Quelle Ihnen ein Beispiel sehen, wie man ein Diagramm in eine bestehende Ansicht einzubetten.
Im Grunde genommen in der Tätigkeit Descriptor .xml-Datei, haben wir die folgende als Platzhalter für das Diagramm definiert. Natürlich gehen andere Komponenten der Benutzeroberfläche zusammen mit diesem Layout:
ChartDemo / layout / xy_chart.xml in der Nähe Linie 27
<LinearLayout
android:id="@+id/chart"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal" />
Wir definieren eine lokale Variable:
ChartDemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java in der Nähe Linie 68
private GraphicalView mChartView;
Wir instanziiert es auf dem onResume () -Methode der Aktivität:
ChartDemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java in der Nähe von Linie 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();
}
}
Jedes Mal, wenn neue Daten hinzugefügt werden (wenn der Benutzer auf die Schaltfläche „Hinzufügen“ in unserem Fall ein neuer Punkt in der aktuellen Serie hinzugefügt und:
ChartDemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java in der Nähe von Linie 147
if (mChartView != null) {
mChartView.repaint();
}
Andere Tipps
Es gibt zwei Gruppen von APIs in ChartFactory
. Für zB. getLineChartView()
und getLineChartIntent()
. So Ersteres wird verwendet, um eine grafische Darstellung zu erhalten, die zu angepassten Layout hinzugefügt werden kann und später verwendet wird, um die Absicht zu bekommen. Im obigen Beispiel hat Dan gebrauchte getLineChartView()
API, die eine GraphicalView
zurückgibt.
Sie können Ihre xml so schreiben ...
<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>
und die Java-Code-Snippet
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();
}
}
So, hier ist eine autarke Ort alles über AChartEngine zu finden. Welcher Link zum Download enthält,
- achartengine-1.1.0-demo-source.zip The AChartEngine 1.1.0 Demo-Projekt Quellcode. 15. Mai 15. Mai 168 KB 8149
- achartengine-1.1.0-javadocs.zip Die AChartEngine 1.1.0 javadoc Dokumentation. 15. Mai 15. Mai 374 KB 3610
- achartengine-1.1.0.jar Die AChartEngine 1.1.0 binäre Build-Bibliothek. 15. Mai 15. Mai 117 KB 5264
Welche neuesten jetzt sind (während diese Antwort veröffentlichen). Jetzt folgen Sie diese einfachen Schritte, um neue Grafik-Datei hinzuzufügen:
- Download und Add achartengine-1.1.0.jar Ihres Projekts lib Abschnitt
-
Jetzt rechts auf Datei klicken, und fügen Sie Build-Pfad, wie in Bild
-
Nun, wie in früheren Antworten definieren, fügen Sie Ihre Klasse folgenden Code:
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(); } }
-
Um weitere Details an jede Klasse von AChartEngineAPI zu bekommen, download achartengine-1.1.0-javadocs.zip und öffnen Sie durch Anklicken in index.html
-
achartengine-1.1.0-demo-source.zip wird bei der weiteren Entwicklung deepar hilfreich sein, wo Sie Referenz für alle Diagramme nehmen
-