0

我使用 AChartEngine 在我的应用程序饼图中创建了。我是这样写的:

private GraphicalView graphicalView;    
private CategorySeries categorySeries = new CategorySeries("");
private DefaultRenderer defaultRenderer = new DefaultRenderer();

private void setUpPieCharts() {
    defaultRenderer.setApplyBackgroundColor(true);
    defaultRenderer.setBackgroundColor(Color.TRANSPARENT);
    defaultRenderer.setZoomButtonsVisible(false);
    defaultRenderer.setZoomEnabled(false);
    defaultRenderer.setPanEnabled(false);
    defaultRenderer.setStartAngle(130);
    defaultRenderer.setShowLabels(false);
    defaultRenderer.setShowLegend(false);

     categorySeries.add("Series " + (categorySeries.getItemCount() + 1), 150);
     SimpleSeriesRenderer renderer = new SimpleSeriesRenderer();
     renderer.setColor(COLORS[(categorySeries.getItemCount() - 1) % COLORS.length]);
     defaultRenderer.addSeriesRenderer(renderer);

     categorySeries.add("Series " + (categorySeries.getItemCount() + 1), 50);
     renderer = new SimpleSeriesRenderer();
     renderer.setColor(COLORS[(categorySeries.getItemCount() - 1) % COLORS.length]);
     defaultRenderer.addSeriesRenderer(renderer);

     LinearLayout layout = (LinearLayout) findViewById(R.id.chart_1);
     graphicalView = ChartFactory.getPieChartView(this, categorySeries, defaultRenderer);
     //defaultRenderer.setStartAngle(90);           
     layout.addView(graphicalView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
}

它工作得很好。但是setStartAngle()方法似乎不起作用。我尝试了几个值,但我的饼图看起来仍然一样。我究竟做错了什么?

编辑

调用此方法的屏幕截图。

没有调用方法的截图

我上传了两张截图,分别调用和不调用此方法。为方便起见,我还为我的活动添加了这一行:

Toast.makeText(getApplicationContext(), String.valueOf(defaultRenderer.getStartAngle()), Toast.LENGTH_LONG).show();

饼图看起来仍然一样。

4

1 回答 1

1

似乎您的代码调用 setStartAngle 两次,一次是 130,另一次是 90。我认为它总是以起始角度 = 90 显示。

我刚刚在 ACE 演示应用程序中尝试过,它可以工作。

好的,我终于设法看到问题出在哪里。您在三月份发布的 AChartEngine 1.0.0 上运行。起始角度 API 在那里,但它不适用于 PieChart,这已在 5 月修复:http ://code.google.com/p/achartengine/source/detail?r=386

为了让它工作,你必须检查 AChartEngine 代码并通过运行 ant dist 自己构建

于 2012-08-08T13:01:48.530 回答