饼图
1,再包中导入 achartengine-1.1.0.jar
2,布局中
mLinear = (LinearLayout) findViewById(R.id.chart);
// 设置背景色
mLinear.setBackgroundColor(Color.BLACK);
将做好的图表 View add进去
<pre name="code" class="java"> mLinear.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
</pre>3.获取GraphicalView mChartView<p></p><pre>
<span style="white-space:pre"> </span><pre name="code" class="java"> // 创建种类
final CategorySeries mSeries = new CategorySeries("");
//
final DefaultRenderer mRenderer = new DefaultRenderer();
<pre name="code" class="java"> mRenderer.setZoomButtonsVisible(true);// 显示放大缩小功能按钮
mRenderer.setStartAngle(180);// 设置为水平开始
mRenderer.setDisplayValues(true);// 显示数据
mRenderer.setFitLegend(true);// 设置是否显示图例
mRenderer.setLegendTextSize(10);// 设置图例字体大小
mRenderer.setLegendHeight(10);// 设置图例高度
mRenderer.setChartTitle("饼图示例");// 设置饼图标题
每个种类所占的份数
<pre name="code" class="java"> int[] COLORS = new int[] { Color.RED, Color.GREEN, Color.BLUE,Color.MAGENTA, Color.CYAN, Color.YELLOW, Color.DKGRAY };每份的颜色
double data[] = new double[] { 20, 30, 40, 50, 60, 70, 80, 90, 100 };
将每一份所占比列 背景色设置
<pre name="code" class="java"> VALUE 为总数
for (int i = 0; i < data.length; i++)
VALUE += data[i];
for (int i = 0; i < data.length; i++) {
mSeries.add("示例 " + (i + 1), data[i] / VALUE);// 设置种类名称和对应的数值,前面是(key,value)键值对
SimpleSeriesRenderer renderer = new SimpleSeriesRenderer();
if (i < COLORS.length) {
renderer.setColor(COLORS[i]);// 设置描绘器的颜色
} else {
renderer.setColor(getRandomColor());// 设置描绘器的颜色
}
renderer.setChartValuesFormat(NumberFormat.getPercentInstance());// 设置百分比
mRenderer.setChartTitleTextSize(14);// 设置饼图标题大小
mRenderer.addSeriesRenderer(renderer);// 将最新的描绘器添加到DefaultRenderer中
}
mChartView = ChartFactory.getPieChartView(getApplicationContext(),
mSeries, mRenderer);// 构建mChartView
为每一项 设置点击事件
mChartView.setOnClickListener(new View.OnClickListener() {// 具体内容
<span style="white-space:pre"> </span>@Override
<span style="white-space:pre"> </span>public void onClick(View v) {
<span style="white-space:pre"> </span>SeriesSelection seriesSelection = mChartView.getCurrentSeriesAndPoint();// 获取当前的类别和指针
<span style="white-space:pre"> </span>if (seriesSelection == null) {
<span style="white-space:pre"> </span>Toast.makeText(getApplicationContext(),"您未选择数据", Toast.LENGTH_SHORT).show();
<span style="white-space:pre"> </span>} else {
<span style="white-space:pre"> </span>for (int i = 0; i < mSeries.getItemCount(); i++) {
<span style="white-space:pre"> </span>mRenderer.getSeriesRendererAt(i).setHighlighted(i == seriesSelection.getPointIndex
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>mChartView.repaint();
<span style="white-space:pre"> </span>Toast.makeText(getApplicationContext(),"您选择的是第"+ (seriesSelection.getPointIndex() + 1)+ " 项 "+ " 百分比为 "+ NumberFormat.getPercentInstance().format
(seriesSelection.getValue()),
<span style="white-space:pre"> </span>Toast.LENGTH_SHORT).show();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>});
</pre><pre name="code" class="java">
</pre><pre name="code" class="java">
</pre><pre>
</pre><pre name="code" class="java">
</pre><pre>
<a target=_blank href="http://download.csdn.net/detail/chinaltz/8172135">源码</a>