Android: Estoy utilizando la biblioteca AChartEngine para los gráficos, pero no es capaz de integrar la vista de gráfico de achartengine con XML androide?
-
27-09-2019 - |
Pregunta
Mi aplicación requiere la biblioteca gráfica y estoy usando la biblioteca gráfica achartengine. Mi aplicación requiere gráfico ser sólo 50% de la pantalla y otra parte se utiliza para mostrar alguna otra información.
¿Es posible tener archivo de recursos XML para las API de gráficos de achartengine y cómo hacerlo?
He intentado encontrar un ejemplo, pero no lo encontré. ¿Es compatible o no?
Solución
Esto es un FAQ para AChartEngine. La aplicación de demostración AChartEngine está disponible para su descarga aquí: AChartEngine demostración
En el código fuente de demostración se puede ver un ejemplo sobre cómo incrustar un gráfico en una vista existente.
Básicamente, en el archivo .xml descriptor de la actividad, se han definido los siguientes como un marcador de posición para el gráfico. Por supuesto, otros componentes de la interfaz de usuario van de la mano con este diseño:
chartdemo / diseño / xy_chart.xml cerca de la línea 27
<LinearLayout
android:id="@+id/chart"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal" />
Se define una variable local:
chartdemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java cerca de la línea 68
private GraphicalView mChartView;
instanciamos en el método onResume () de la actividad:
chartdemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java cerca de la línea 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();
}
}
Siempre que se añaden nuevos datos (cuando el usuario presiona el botón "Añadir" en nuestro caso, se añade un nuevo punto en la serie actual y:
chartdemo / src / org.achartengine.chartdemo.demo.chart / XYChartBuilder.java cerca de la línea 147
if (mChartView != null) {
mChartView.repaint();
}
Otros consejos
Hay dos conjuntos de APIs en ChartFactory
. Para, por ejemplo. getLineChartView()
y getLineChartIntent()
. Así que primero se utiliza para obtener una vista gráfica que se puede añadir a disposición personalizada y más tarde se utiliza para obtener el intento. En ejemplo anterior Dan tiene API getLineChartView()
usado que devuelve un GraphicalView
.
Puede escribir el XML como este ...
<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>
y el fragmento de código Java es
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();
}
}
Así que aquí es un lugar autosuficiente para encontrar todo sobre AChartEngine . Que incluye un enlace a descarga,
- achartengine-1.1.0-demo-source.zip El código fuente del proyecto de demostración AChartEngine 1.1.0. 15 de mayo 15 de mayo de 8149 168 KB
- achartengine-1.1.0-javadocs.zip la documentación Javadoc AChartEngine 1.1.0. 15 de mayo 15 de mayo de 3610 374 KB
1.1.0 build biblioteca binaria- achartengine-1.1.0.jar El AChartEngine. 15 de mayo 15 de mayo de 5264 117 KB
¿Cuáles son las últimas, por ahora (al publicar esta respuesta). Ahora sigue estos sencillos pasos con el fin de añadir nuevo archivo gráfico:
- Descargar y añadir achartengine-1.1.0.jar a la sección lib de su proyecto
-
Ahora haga clic derecho en el archivo y añadirlo al camino de construcción, como en la imagen
-
Ahora, como definen en las respuestas anteriores, agregar código siguiente a la clase:
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(); } }
-
Para obtener detalles sobre cualquier clase de AChartEngineAPI, descargar achartengine-1.1.0-javadocs.zip y abierto haciendo clic en index.html
-
achartengine-1.1.0-demo-source.zip será útil durante el desarrollo posterior deepar donde se puede tomar de referencia para todos los gráficos
-