当值= 0时,AChartEngine显示值不显示

时间:2012-05-22 08:06:08

标签: android achartengine

我正在使用AChartEngine库处理饼图。在这里,我想禁用要在图表上显示的图表值,但仅限于内容值为0的图表。

现在我正在使用它:

         public Intent execute_assetLifecycle(Context context,RelativeLayout parent) {
    int[] colors = new int[] { Color.RED, Color.DKGRAY, Color.BLUE, Color.CYAN,Color.GREEN,Color.GRAY };
    DefaultRenderer renderer = buildCategoryRenderer(colors);

    CategorySeries categorySeries = new CategorySeries("Title1");


        categorySeries.add("30 Days=" days_count_30);  

        categorySeries.add("60 Days=", days_count_60);

        categorySeries.add("90 Days=", days_count_90);

        categorySeries.add("180 Days=", days_count_180);


    mChartView2=ChartFactory.getPieChartView(context, categorySeries,renderer);

    parent.addView(mChartView2);
    return ChartFactory.getPieChartIntent(context, categorySeries, renderer,null);
    }

    protected DefaultRenderer buildCategoryRenderer(int[] colors) {
    DefaultRenderer renderer = new DefaultRenderer();
    for (int color : colors) {
    SimpleSeriesRenderer r = new SimpleSeriesRenderer();
    r.setColor(color);
    renderer.addSeriesRenderer(r);

    }
    return renderer;
    }

我使用上面的代码显示带有显示值的饼图,但我想只显示那些> 0的显示值,否则它们不会在图表上显示为标签: 30天= 0

请建议任何在值== 0

时停止显示图表值的方法

1 个答案:

答案 0 :(得分:0)

在添加系列之前,我会使用If语句来检查值为零。 也许为categorySeries.add创建自己的包装函数,如此:

private void add(String category,double value){
    if(value != 0){
        categorySeries.add(category,value);
    }
}

您可能必须将渲染数限制为实际添加的系列数。