`
zhenping
  • 浏览: 81990 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

AChartEngine应用之PieChart(饼图)

 
阅读更多

AChartEngine应用之PieChart(饼图)

构建饼图的步骤主要分为以下三步,还需要在项目中引入AChartEngine依赖jar包,在Manifest中添加:<activityandroid:name="org.achartengine.GraphicalActivity" />

1.设置DefaultRenderer

DefaultRenderer mRenderer = new DefaultRenderer();// PieChart的主要描绘器

mRenderer.setZoomButtonsVisible(true);// 显示放大缩小功能按钮

mRenderer.setStartAngle(180);// 设置为水平开始

mRenderer.setDisplayValues(true);// 显示数据

mRenderer.setFitLegend(true);// 设置是否显示图例

mRenderer.setLegendTextSize(10);// 设置图例字体大小

mRenderer.setLegendHeight(10);// 设置图例高度

mRenderer.setChartTitle("饼图示例");// 设置饼图标题

mRenderer.setChartTitleTextSize(14);// 设置饼图标题大小

2.构建数据源CategorySeries

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中

}

3.通过ChartFactory获取饼图

mChartView = ChartFactory.getPieChartView(getApplicationContext(),

mSeries, mRenderer);// 构建mChartView

mRenderer.setClickEnabled(true);// 允许点击事件

mChartView.setOnClickListener(new View.OnClickListener() {// 具体内容

}

运行效果图:


code

package com.qiuzhping.achart;

import java.text.NumberFormat;
import java.util.Random;

import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.model.CategorySeries;
import org.achartengine.model.SeriesSelection;
import org.achartengine.renderer.DefaultRenderer;
import org.achartengine.renderer.SimpleSeriesRenderer;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.Toast;

/**
 * @项目名称:AChart
 * @类名称:PieChartBuilder
 * @作者:Qiuzhping
 * @时间:2014-1-15下午11:20:48
 * @作用 :构建饼图,并产生与用户交互,点击对应的区域能正确显示信息
 */
public class PieChartBuilder extends Activity {

	private static 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 };

	private CategorySeries mSeries = new CategorySeries("");// PieChart的DataSet
															// 其实就是一些键值对,跟Map使用方法差不多

	private DefaultRenderer mRenderer = new DefaultRenderer();// PieChart的主要描绘器

	private GraphicalView mChartView;// 用来显示PieChart 需要在配置文件Manifest中添加
										// <activity
										// android:name="org.achartengine.GraphicalActivity"
										// />

	private LinearLayout mLinear;

	private static double VALUE = 0;// 总数

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.xy_chart);
		mLinear = (LinearLayout) findViewById(R.id.chart);
		mLinear.setBackgroundColor(Color.BLACK);

		mRenderer.setZoomButtonsVisible(true);// 显示放大缩小功能按钮
		mRenderer.setStartAngle(180);// 设置为水平开始
		mRenderer.setDisplayValues(true);// 显示数据
		mRenderer.setFitLegend(true);// 设置是否显示图例
		mRenderer.setLegendTextSize(10);// 设置图例字体大小
		mRenderer.setLegendHeight(10);// 设置图例高度
		mRenderer.setChartTitle("饼图示例");// 设置饼图标题

		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中
		}

		if (mChartView == null) {// 为空需要从ChartFactory获取PieChartView
			mChartView = ChartFactory.getPieChartView(getApplicationContext(),
					mSeries, mRenderer);// 构建mChartView
			mRenderer.setClickEnabled(true);// 允许点击事件
			mChartView.setOnClickListener(new View.OnClickListener() {// 具体内容
						@Override
						public void onClick(View v) {
							SeriesSelection seriesSelection = mChartView
									.getCurrentSeriesAndPoint();// 获取当前的类别和指针
							if (seriesSelection == null) {
								Toast.makeText(getApplicationContext(),
										"您未选择数据", Toast.LENGTH_SHORT).show();
							} else {
								for (int i = 0; i < mSeries.getItemCount(); i++) {
									mRenderer.getSeriesRendererAt(i)
											.setHighlighted(
													i == seriesSelection
															.getPointIndex());
								}
								mChartView.repaint();
								Toast.makeText(
										getApplicationContext(),
										"您选择的是第"
												+ (seriesSelection
														.getPointIndex() + 1)
												+ " 项 "
												+ " 百分比为  "
												+ NumberFormat
														.getPercentInstance()
														.format(seriesSelection
																.getValue()),
										Toast.LENGTH_SHORT).show();
							}
						}
					});
			mLinear.addView(mChartView, new LayoutParams(
					LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
		} else {
			mChartView.repaint();
		}
	}

	private int getRandomColor() {// 分别产生RBG数值
		Random random = new Random();
		int R = random.nextInt(255);
		int G = random.nextInt(255);
		int B = random.nextInt(255);
		return Color.rgb(R, G, B);
	}
}


对应的项目源码:http://download.csdn.net/detail/qiu_11/6853469

待续.......

AChartEngine应用系列文章

(一)AChartEngine简介

(二)AChartEngine应用之PieChart(饼图)

(三)AChartEngine应用之BarChart(柱形图)

(四)AChartEngine应用之PieChart(动态饼图,允许产生动态数据并显示)

(五)AChartEngine应用之LineChart(模拟生命特征值图)

(六)AChartEngine应用之LineChart(模拟三角函数sin,cos)

(七)AChartEngine高级应用CombinedXYChart(组合统计图)






分享到:
评论

相关推荐

    android条形图 饼图 曲线图 例子详细 可以直接用 包含achartengine的jar包

    首先,AChartEngine是一个开源的Android图表库,它提供了丰富的图表类型,包括柱状图(BarChart)、饼图(PieChart)和曲线图(LineChart)等,适用于数据分析和展示。在提供的压缩包中,包含`.classpath`、`....

    Achartengine0.6-Demo

    3. 饼图(PieChart):展示各部分占整体的比例。 4. 散点图(ScatterChart):显示两个变量之间的关系。 5. 雷达图(RadarChart):多维数据的比较。 6. 条形图(RangeBarChart):显示数值范围。 在"Achartengine...

    Achartengine Demo

    1. **图表类型**:Achartengine支持多种图表类型,包括折线图(LineChart)、饼图(PieChart)和条形图(BarChart)。这些图表可以用来展示数据的变化趋势、分布情况或者比例关系。 2. **数据源**:在绘制图表之前...

    AChartEngine 示例程序 文档 JAR包

    1. **图表类型**:AChartEngine支持多种图表,包括线图(XYGraph)、柱状图(BarChart)、饼图(PieChart)、散点图(ScatterChart)等,每种图表都有丰富的定制选项,满足不同展示需求。 2. **数据绑定**:数据...

    achartengine-1.1.0-demo(android绘图开源库demo)

    1. **图表类型**:AChartEngine提供多种图表类型,如LineChart(折线图)、BarChart(柱状图)、PieChart(饼图)等,每种图表都有其独特的应用场景。 2. **数据系列**:数据系列是图表的基础,由一系列数据点组成...

    Android高级应用源码-里面有曲线图 折线图 双曲线图 柱形图 饼图,在achartengine 的基础上 更改了一些颜色

    AChartEngine是一个开源的Android图表库,它提供了多种类型的图表,包括线性图(LineChart)、散点图(ScatterChart)、条形图(BarChart)、饼图(PieChart)和更多。这个库易于使用且功能强大,适合各种项目中集成...

    AChartEngine源码

    - **图表类型**:AChartEngine支持多种图表类型,如LineChart(折线图)、BarChart(柱状图)、PieChart(饼图)等,每种图表都有对应的实现类。 - **渲染器(Renderers)**:渲染器负责处理图表的外观和行为,例如...

    achartengine1.2.0类库源文件

    AChartEngine是一个强大的开源图表库,专为Android应用程序设计,用于创建各种类型的图表,如折线图、柱状图、饼图等。这个类库在版本1.2.0中提供了丰富的功能,允许开发者轻松地在他们的应用中集成数据可视化元素。...

    AchartEngine.jar包

    **AchartEngine.jar包**是专门为Android平台设计的一个开源图表库,它允许开发者轻松地在Android应用中集成各种图表类型,如报表、饼图、曲线图等。这个库的出现,极大地简化了Android应用程序中数据可视化的过程,...

    achartengine 1.1.0 jar和demo

    3. 饼图(PieChart):表示各部分占总体的比例,直观清晰。 4. 散点图(ScatterChart):用于展示两个变量之间的关系,通常用于科学或工程领域的数据分析。 5. 雷达图(RadarChart):多维数据的比较,每条轴代表一...

    android 图表引擎AChartEngine

    - **饼图(PieChart)**:用于表示整体与部分之间的关系,每一块代表一部分的比例。 - **散点图(XYScatterChart)**:在X轴和Y轴上展示数据点,用于查看两个变量之间的关系。 - **雷达图(RadarChart)**:多维数据...

    andorid-饼图&柱状图.rar

    本资源包“android-饼图&柱状图.rar”提供了Android平台上实现饼图和柱状图的功能,这对于创建数据驱动的应用或者数据分析界面非常有用。下面我们将详细探讨这两种图表在Android开发中的应用和实现方式。 首先,...

    achartengine表格-带中文源码

    AChartEngine是一个强大的开源图表库,适用于Android平台,它允许开发者轻松地在应用程序中创建各种图表,如折线图、柱状图、饼图等。这个"achartengine表格-带中文源码"的资源提供了AChartEngine的源代码,并且源码...

    android achartengine 最新demo

    `ACHartEngine`的`org.achartengine.chart.PieChart`类可以帮助你创建饼图,你可以调整扇区的颜色、透明度,甚至添加阴影效果。 4. 散点图(Scatter Chart):散点图用于表示两个变量之间的关系。`ACHartEngine`...

    Achartengine趋势图demo

    2. **创建图表**:Achartengine提供多种图表类型,例如LineChart(线图)、BarChart(柱状图)、PieChart(饼图)等。你可以根据需求选择合适的图表类型,然后创建对应的ChartFactory。 3. **数据准备**:在创建...

    android 饼图API

    Android原生SDK并不直接提供饼图视图,但可以通过第三方库如`MPAndroidChart`、`AChartEngine`或`androidplot`来实现。其中,`MPAndroidChart`是最常用且功能强大的图表库之一,它提供了丰富的图表类型,包括饼图。...

    achartengine.jar包h

    AChartEngine是一款针对Java平台的开源图表绘制库,它使得开发者能够在Android应用中轻松地创建各种图表,如饼图、折线图和柱状图等。这个库以其简单易用的特性,深受开发者的喜爱。在Android应用开发中,数据可视化...

    achartengine demo

    - **创建图表**: 选择合适的图表类型,如XYChart(线图、柱状图)、PieChart(饼图)等,然后使用对应的Builder类初始化图表。 - **设置数据**: 将数据集分配给图表,数据可以是数字数组、List或其他数据结构。 - **...

    achartengine.jar

    1. **多类型图表**:achartengine支持多种常见的图表类型,包括折线图(LineChart)、柱状图(BarChart)、饼图(PieChart)、散点图(ScatterChart)等,满足不同场景下的数据展示需求。 2. **实时更新**:它可以...

Global site tag (gtag.js) - Google Analytics