android - tipos - Implementación de un gráfico con AFreeChart en una vista
tipos de graficas jfreechart (2)
Aquí está mi problema: estoy usando AFreeChart
para mostrar un gráfico en mi actividad. La razón por la que utilicé AFreeChart
fue porque primero terminé este gráfico con JFreeChart
, y, me di cuenta después de eso, que no era compatible con Android.
Entonces, con AFreeChart
, podría crear el mismo gráfico con exactamente el mismo código, pero no sé cómo mostrarlo en una View
.
Aquí estoy creando la tabla:
private void creerGraphique(){
//Here I have the creation of the DateSet
AFreeChart chart = ChartFactory.createXYLineChart(
"Mois", // Title
"Jours", // x-axis Label
"Repetitions", // y-axis Label
graph, // Dataset
PlotOrientation.VERTICAL, // Plot Orientation
true, // Show Legend
true, // Use tooltips
false // Configure chart to generate URLs?
);
}
Aquí quiero usarlo:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.graphique);
this.stockTableau();
this.creerGraphique();
//HERE: How can I display it since it''s already created
}
Descargué el código de demostración de AFreeChart
, pero se utilizó una función que no estaba en el paquete y, por lo tanto, no pude usarlo.
Gracias por tu ayuda.
PD: No soy inglés, así que espero que mi problema esté claro, no dudes en preguntarme más detalles.
¿Has mirado la muestra en AFreeChart? Es bastante sencillo, mira lo que hicieron para esta tabla, por ejemplo:
Extienden una DemoView que es básicamente una Vista de Android con un método setChart, y pasan el gráfico a la Vista.
¡Entonces extienda DemoView o cree su propio equivalente si no necesita todo lo que contiene y siga la muestra!
Buena suerte.
También vale la pena señalar que al usar el código que ha pegado arriba, sería útil llamar al método draw () del gráfico cuando lo desee.
Como ejemplo simple, si estuviera usando SurfaceView, podría crear un método similar al siguiente:
private void drawChart(AFreeChart chart, ChartRenderingInfo info) {
getHolder.lockCanvas();
chart.draw(canvas, area, info);
getHolder().unlockCanvasAndPost(canvas);
}
Donde ''lienzo'' y ''área'' se han establecido.
Esto es útil si está buscando realizar una implementación muy simple en la que no desee utilizar DemoView explicado anteriormente.