效果图:
code下载地址:
http://download.youkuaiyun.com/detail/miaoyunzexiaobao/8386183
步骤:
1.引入achartengine包
2.写绘图函数:本函数第一个参数为布局变量(饼形图放置的位置),第二个参数为double型数组(控制饼形图中各比例)
public void DrawPie(LinearLayout layout, double[] value) {
int[] COLORS = new int[] { Color.GREEN, Color.BLUE, Color.BLACK,
Color.MAGENTA, Color.CYAN };
CategorySeries mSeries = new CategorySeries("");
DefaultRenderer mRenderer = new DefaultRenderer();
GraphicalView mChartView;
mChartView = ChartFactory.getPieChartView(this, mSeries, mRenderer);
layout.addView(mChartView, new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
mRenderer.removeAllRenderers();
mSeries.clear();
for (double v : value) {
mSeries.add("Series " + (mSeries.getItemCount() + 1), v);
SimpleSeriesRenderer renderer = new SimpleSeriesRenderer();
renderer.setColor(COLORS[(mSeries.getItemCount() - 1)
% COLORS.length]);
mRenderer.addSeriesRenderer(renderer);
}
mChartView.repaint();
}
3.在MainActivity中的onCreate中添加:
double[] value = { 10.00, 20.00, 30.00, 40.00, 50.00 };
DrawPie((LinearLayout) findViewById(R.id.chart), value);
程序在onCreat函数中调用DrawPie函数在Activity中绘制出饼形图。
变量:
CategorySeries mSeries:数据集
DefaultRenderer mRenderer:图表设置集
GraphicalView mChartView:饼形图控件
函数首先将mChartView最大化置于传入的linearLayout中,然后重置mRenderer和mSeries。
接着用for遍历传入的values。对每个value,执行以下动作:
1.向mSeries中add标题和值
2.在mRenserer中addSeriesRenserer
最后重绘mChartView