2011-10-10 2 views
10

Я реализовал линейный график, используя ахартайнгин. Но я хочу изменить цвет фона линейного графика. Кто-то предлагает следующий код для изменения цвета фона.android - Как изменить цвет фона графика с помощью achartengine

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

Но это не изменит весь фон. Я хочу изменить весь фон, возможно ли это? если да, то как это сделать, пожалуйста, может кто-нибудь помочь me.The следующему изображениям на выходе предыдущего code.I хочет изменить весь BGCOLOR (означает оставшийся черный цвет часть белых также) Grpah without entire bgcolor

Alinegraph.java 

public class ALinegraph extends Деятельность {

/** Вызывается, когда действие сначала создается. */

@Override 

общественного недействительными OnCreate (Пачка 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 простирается 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; 
    } 

} 

Обновленный образ

enter image description here

+0

Вы можете отправить изображение после использования renderer.setBackgroundColor (Color.BLACK); – Sameer

+0

Я обновляю изображение, используя код ur. Но цвет по умолчанию вернулся, поэтому я хочу изменить этот цвет на белый. Является ли это возможным? – naresh

+0

Я думаю, что ваша проблема решена, когда вы приняли ответ. в любом случае я думаю, что это должно работать для полного фона – Sameer

ответ

44

вы должны также установить margincolor:

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

Это даст полный вид вашего графика фона в красный цвет.

+0

спасибо, что это работает и больше, как отделить метки оси Y и текст (цена), как и ось X? Пожалуйста, обратитесь к нижней части изображения вопроса. – naresh

+1

Я думаю, вы можете использовать mRenderer.setMargins (новый int [] {20, 30, 15, 0}); – Hanry

+0

, пожалуйста, можете ли вы объяснить этот код? каковы 4 значения – naresh

Смежные вопросы