Android: Sto usando biblioteca AChartEngine per i grafici, ma non in grado di integrare vista grafico di achartengine con XML Android?
-
27-09-2019 - |
Domanda
La mia applicazione richiede biblioteca grafico e sto usando biblioteca grafico achartengine. La mia applicazione richiede grafico per essere solo il 50% dello schermo e altra parte viene utilizzato per visualizzare alcune altre informazioni.
E 'possibile avere file di risorse XML per le API grafico di achartengine e come farlo?
Ho cercato di trovare un esempio, ma non l'ho trovato. E 'supportato o no?
Soluzione
Questa è una FAQ per AChartEngine. L'applicazione demo AChartEngine è disponibile per il download qui: AChartEngine demo
Nel codice sorgente demo si può vedere un esempio su come incorporare un grafico in una vista esistente.
In sostanza, nel file XML descrittore di attività, abbiamo definito il seguente come segnaposto per il grafico. Naturalmente, gli altri componenti dell'interfaccia utente vanno di pari passo con questo layout:
ChartDemo / layout / xy_chart.xml vicino Linea 27
<LinearLayout
android:id="@+id/chart"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal" />
definire una variabile locale:
ChartDemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java vicino Linea 68
private GraphicalView mChartView;
un'istanza sul metodo onResume () dell'attività:
ChartDemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java vicino Linea 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();
}
}
Ogni volta che vengono aggiunti nuovi dati (quando l'utente preme il pulsante "Aggiungi" nel nostro caso, si aggiunge un nuovo punto nella serie attuale e:
ChartDemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java vicino Linea 147
if (mChartView != null) {
mChartView.repaint();
}
Altri suggerimenti
Ci sono due set di API in ChartFactory
. Per per esempio. getLineChartView()
e getLineChartIntent()
. Quindi primo è utilizzato per ottenere una visualizzazione grafica che può essere aggiunto al layout personalizzato e in seguito viene utilizzato per ottenere l'intento. Nell'esempio sopra Dan trovi API getLineChartView()
usate che restituisce un GraphicalView
.
È possibile scrivere il XML come questo ...
<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>
e il frammento di codice 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();
}
}
Quindi, ecco un luogo autosufficiente per trovare tutto su AChartEngine . Che comprende link per scaricare,
- achartengine-1.1.0-demo-source.zip Il codice sorgente AChartEngine 1.1.0 progetto demo. 15 maggio 15 maggio 168 KB 8149
- achartengine-1.1.0-javadocs.zip La documentazione javadoc AChartEngine 1.1.0. 15 maggio 15 maggio 374 KB 3610
- achartengine-1.1.0.jar L'AChartEngine 1.1.0 biblioteca accumulo binario. 15 maggio 15 maggio 117 KB 5264
Quali sono le ultime per ora (durante la pubblicazione questa risposta). Ora seguite questi semplici passaggi al fine di aggiungere nuovo file grafico:
- Download e aggiungere achartengine-1.1.0.jar alla sezione lib del progetto
-
Ora fate clic destro sul file e l'aggiungerlo al percorso di generazione, come nella immagine
-
Ora, come definire nelle risposte precedenti, aggiungere seguente codice alla classe:
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(); } }
-
Per avere dettagli su qualsiasi classe di AChartEngineAPI, scaricare achartengine-1.1.0-javadocs.zip e aperto facendo clic su index.html
-
achartengine-1.1.0-demo-source.zip sarà utile durante l'ulteriore sviluppo deepar dove si può prendere di riferimento per tutti i grafici
-