2011-10-10 29 views
10

Implementé el gráfico de líneas con el achartengine. Pero quiero cambiar el color de fondo del gráfico de líneas. Alguien sugiere que el siguiente código para cambiar el color de fondo.android - Cómo cambiar el color de fondo del gráfico utilizando achartengine

mRenderer.setApplyBackgroundColor (true); mRenderer.setBackgroundColor (Color.RED);

Pero no cambiará todo el fondo. Quiero cambiar todo el fondo ¿es posible? en caso afirmativo, cómo hacerlo por favor, ¿alguien puede ayudar a me.The siguiente imagen es la salida de la code.I anterior querer cambiar todo el bgcolor (significa la parte restante de color negro a blanco también) Grpah without entire bgcolor

Alinegraph.java 

public clase ALinegraph extends Actividad {

/** Se invoca cuando se crea la actividad por primera vez. */

@Override 

vacío onCreate (Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);  
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.main); 

    Button Linegraph = (Button) findViewById(R.id.Linegraph); 
    Linegraph.setOnClickListener(new OnClickListener(){ 

     @Override 
     public void onClick(View v) { 
       Linegraphpage ACTC = new Linegraphpage(); 
       Intent intent = ACTC.execute(ALinegraph.this); 
       startActivity(intent);     
     }});   
} 

}

Linegraphpage.java 

Linegraphpage public class pública se extiende AbstractDemoChart

{

/** 
    * Returns the chart name. 
    * 
    * @return the chart name 
    */ 
    public String getName() { 
    return "Average temperature"; 
    } 

    /** 
    * Returns the chart description. 
    * 
    * @return the chart description 
    */ 
    public String getDesc() { 
    return "The average temperature in 4 Greek islands (line chart)"; 
    } 

    /** 
    * Executes the chart demo. 
    * 
    * @param context the context 
    * @return the built intent 
    */ 
    public Intent execute(Context context) { 
    String[] titles = new String[] { "Crete","Corfu"}; 
    List<double[]> x = new ArrayList<double[]>(); 
    for (int i = 0; i < titles.length; i++) { 
     x.add(new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }); 
    } 
    List<double[]> values = new ArrayList<double[]>(); 
    values.add(new double[] { 12.3, 12.5, 13.8, 16.8, 20.4, 24.4, 26.4, 26.1, 23.6, 20.3 }); 
    values.add(new double[] { 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 }); 

    int[] colors = new int[] { Color.CYAN,Color.GREEN}; 
    PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE,PointStyle.POINT}; 
    XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles); 
    int length = renderer.getSeriesRendererCount(); 
    for (int i = 0; i < length; i++) { 
     ((XYSeriesRenderer) renderer.getSeriesRendererAt(i)).setFillPoints(true); 
    } 
    setChartSettings(renderer, "", "", "price", 0, 12, 0, 190, 
     Color.GREEN, Color.GREEN); 
    renderer.setXLabels(10); 
    renderer.setYLabels(7);  
    renderer.setShowGrid(false); 
    renderer.setXLabelsAlign(Align.RIGHT); 
    renderer.setYLabelsAlign(Align.RIGHT); 
    renderer.setApplyBackgroundColor(true); 
    renderer.setBackgroundColor(Color.WHITE); 
    renderer.setZoomButtonsVisible(true); 
    renderer.setPanLimits(new double[] { -10, 20, -10, 40 }); 
    renderer.setZoomLimits(new double[] { -10, 20, -10, 40 }); 

    Intent intent = ChartFactory.getLineChartIntent(context, buildDataset(titles, x, values), 
     renderer, ""); 
    return intent; 
    } 

} 

Actualizado imagen

enter image description here

+0

puede publicar una imagen después de usar renderer.setBackgroundColor (Color.BLACK); – Sameer

+0

actualizo la imagen usando su código. Pero el color predeterminado está de vuelta, así que quiero cambiar este color a blanco. ¿Es posible? – naresh

+0

Creo que su problema se ha resuelto al aceptar la respuesta. De cualquier manera, creo que debería funcionar para completar el fondo. – Sameer

Respuesta

44

también debe configurar su margincolor:

mRenderer.setApplyBackgroundColor(true); 
mRenderer.setBackgroundColor(Color.RED); 
mRenderer.setMarginsColor(Color.RED); 

Esto le dará una visión general de sus antecedentes gráfica para el rojo.

+0

gracias, está funcionando y más, ¿cómo separar las etiquetas del eje y el texto (precio) como el eje X también? Por favor refiérase a la imagen de la parte inferior de la pregunta. – naresh

+1

creo que puedes usar mRenderer.setMargins (new int [] {20, 30, 15, 0}); – Hanry

+0

por favor ¿puedes explicar este código? cuáles son los 4 valores – naresh

Cuestiones relacionadas