2011-09-25 18 views
5

¿Alguien sabe cómo cambiar la ubicación de la leyenda? Estoy tratando de expandir el gráfico para hacer uso de todo el espacio.Ubicación de la leyenda de Achartengine

Hasta ahora he

mRenderer.setMargins (new int [] {20, 30, -50, 0});

Esto expande el gráfico inferior pero la leyenda se mantiene en la misma ubicación por lo que es ahora por encima del eje x

Probé

mRenderer.setLegendHeight (5);

con valores negativos y positivos. No estoy seguro de qué se supone que debe hacer esto, pero hace que mi gráfico sea demasiado bajo en la pantalla (lo convierte en una vista desplazable).

Además, puede que no sea importante, pero está en un fragmento y es del tipo XYChart.

+0

Intente quitar el mRenderer.setMargins y pruébelo una vez ... –

Respuesta

7

La propiedad setLegendHeight (..) mueve la posición de la leyenda. Intenta cambiar los valores que estás usando en ambas funciones, eso funcionaría. aclamaciones.

Harry.

+4

Tuve que sacar el valor negativo (lo hice 0) para la parte inferior en el margen e hice el LegendHeight (50). Para que se vea bien. Parece ser una extraña relación entre los 2. Me gustaría que hubiese algún tipo de documentación que me ayudara. – easycheese

2

Esto funciona:

renderer.setYLabelsAlign(Align.LEFT, 0) 
+0

No muestra tal función para DefaultRenderer ... Actualización: oka, es para un gráfico no para un gráfico. Lo tengo. –

2

Además de usar los consejos anteriores encontré la siguiente utilidad ...

// Temporarily show margins so I can work out what is going on 
renderer.setMarginsColor(Color.RED); 

// Legend was being cropped or not shown at all until I did this 
renderer.setFitLegend(true); 

Al final me había tanto el margen inferior y la altura de la leyenda se establece en cero pero aún lo vi en la pantalla con los márgenes en rojo (de mi diagnóstico anterior). Creo que algunos márgenes se deben calcular automáticamente para la leyenda desde setFitLegend.

Cuestiones relacionadas