【发布时间】:2012-07-04 11:22:20
【问题描述】:
我正在使用 AChartEngine 库制作饼图。在这里,我想禁用图表值以显示在图表上,但仅限于那些内容值为 0 的。如果有人知道这一点,请分享给我。
编码:
pchart=ChartFactory.getPieChartView(this,buildCategoryDataset("Daily Basis", values),renderer);
re.addView(pchart);
}
}
BuildCategory 渲染器:
protected DefaultRenderer buildCategoryRenderer(int[] colors) {
DefaultRenderer renderer = new DefaultRenderer();
renderer.setLabelsTextSize(10);
renderer.setLegendTextSize(15);
renderer.setShowLegend(true);
renderer.setExternalZoomEnabled(true);
renderer.setZoomEnabled(true);
renderer.setZoomButtonsVisible(true);
renderer.setShowAxes(true);
// renderer.setMargins(new int[] { 20, 30, 15, 0 });
for (int color : colors) {
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(color);
renderer.addSeriesRenderer(r);
}
return renderer;
}
此处的数据集:
protected CategorySeries buildCategoryDataset(String title, double[] values) {
CategorySeries series = new CategorySeries(title);
int k = 0,year;
String str_year;
str_year=String.valueOf(Math.round(values[0]));
Log.i("Invent","Year"+str_year);
year=Integer.parseInt(str_year);
Log.i("Invent","YearInt"+year);
if(flag_val==1)
{
for(k=0;k<tot_yearno-1;k++)
{
if(values[k]==0)
{
series.add(0.0); /// Here some settings for display null value.But **here i Want to display nothing Only.**
}
else
series.add("" + year_first++, values[k]);
}
}
if(flag_val==0)
{
for (double value : values) {
if(value==0)
{
series.add("" + ++k, 0.0);
}
else
series.add("Day " + ++k, value);
}
}
return series;
}
}
【问题讨论】:
-
在将数组传递给渲染器对象之前,为什么不从数组中删除所有不需要的条目?
-
我认为您需要重新表述这个问题 - 为什么要添加从零开始的值?你真正想做的是什么?
-
如果有人知道这个问题的答案,请分享给我......
-
尝试将你的双精度值装箱到一个 Double 对象中,即不要说“0.0”,而是说“新 Double(0.0)” - 请参阅下面我编辑的评论
标签: android pie-chart achartengine