2013-03-27 28 views
1

我正在爲Single系列和單個渲染器生成條形圖圖。根據我給定的數據條件,我需要用不同顏色生成條形圖。單個系列和單個渲染器的多個顏色條

以下是我的渲染代碼,

private XYMultipleSeriesRenderer getDemoRenderer() { 
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); 
    renderer.setBarSpacing(1.0); 
    renderer.setAxisTitleTextSize(12); 
    renderer.setChartTitleTextSize(12); 
    renderer.setLabelsTextSize(15); 
    renderer.setLegendTextSize(15); 
    renderer.setPointSize(5f); 
    renderer.setMargins(new int[] { 20, 30, 15, 0 }); 
    renderer.setXLabels(0); 
    XYSeriesRenderer r = new XYSeriesRenderer(); 
    SQLiteDatabase DB = Context 
      .openOrCreateDatabase("WaterElectricityReadingDataBase.db", 
        MODE_WORLD_READABLE, null); 
    Cursor c = DB 
      .rawQuery(
        "select ReadingValue,ReadingMode, from WaterElectricity ", 
        null); 
    if (c.moveToFirst()) { 
     do { 
      String ReadingMode = c.getString(c 
        .getColumnIndex("ReadingMode")); 
      if (ReadingMode.contains("Water")){ 

       r.setColor(Color.GREEN); 
      }else if(ReadingMode.contains("Electricity")){ 
       r.setColor(Color.WHITE); 
      } 
     }while (c.moveToNext()); 
    }    
    r.setPointStyle(PointStyle.DIAMOND); 
    r.setFillBelowLine(false); 
    r.setFillPoints(true); 
    renderer.addSeriesRenderer(r); 
    setChartSettings(renderer); 
    return renderer; 
} 

在上面的代碼,如果ReadingMode是「水」,我需要的酒吧在綠色中產生和其他的,以白色爲主色調。如果我運行上面的代碼,我確實觀察到所有條形都以綠色生成。我在我的數據庫中將ReadingMode記錄爲「Water」和「Electricity」。但是,這是爲什麼發生?我需要採用多個渲染器,但我有單個系列?

任何人都可以告訴我這個好的解決方案嗎?我的頭即將破裂。

任何幫助將不勝感激!提前致謝!!

+0

解決了我的自我。採取兩個系列與兩個renderers。這解決了這個問題。 – Mahe 2013-03-27 06:07:25

+0

項目成員說這不是支持。但是下面的鏈接顯示了一種方法。 – Raghunandan 2013-03-27 06:12:18

回答