【发布时间】:2013-03-27 05:39:32
【问题描述】:
我正在为单系列和单渲染器生成条形图。我需要根据给定的数据条件生成不同颜色的条形图。
以下是我的渲染器代码,
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”。但为什么会这样?我需要使用多个渲染器但我只有一个系列吗?
谁能给我推荐一个好的解决方案?我的头快要断了。
任何帮助将不胜感激!提前致谢!!
【问题讨论】:
-
为我自己解决了。用两个渲染器拍摄了两个系列。这解决了问题。
-
项目成员说不支持。但是下面的链接显示了一种方法。
标签: android bar-chart achartengine