我正在为单系列和单渲染器生成条形图。我需要根据给定的数据条件生成不同颜色的条形图。
以下是我的渲染器代码,
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 是“Water”,我需要生成绿色的条形图,而另一个生成白色的条形图。如果我运行上面的代码,我确实观察到所有条都以绿色生成。我的数据库中的 ReadingMode 记录为“Water”和“Electricity”。但为什么会这样?我是否需要使用多个渲染器但我只有一个系列?
任何人都可以建议我一个好的解决方案吗?我的头快要断了。
任何帮助将不胜感激!!提前致谢!!