AChartEngine应用之PieChart(饼图)
来源:互联网 发布:js 向数组添加对象 编辑:程序博客网 时间:2024/04/25 02:20
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;// 总数@Overrideprotected 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获取PieChartViewmChartView = ChartFactory.getPieChartView(getApplicationContext(),mSeries, mRenderer);// 构建mChartViewmRenderer.setClickEnabled(true);// 允许点击事件mChartView.setOnClickListener(new View.OnClickListener() {// 具体内容@Overridepublic 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);}}
0 0
- AChartEngine应用之PieChart(饼图)
- AChartEngine应用之PieChart(饼图)
- 应用achartengine包画数据统计图之二————画PieChart(饼图)
- AChartEngine应用之PieChart(动态饼图,允许产生动态数据并显示)
- AChartEngine应用之PieChart(动态饼图,允许产生动态数据并显示)
- AChartEngine应用之BarChart(柱形图)
- AChartEngine应用之BarChart(动态柱形图)
- AChartEngine应用之BarChart(动态柱形图)
- <Android 应用 之路> MPAndroidChart~PieChart
- AChartEngine应用之LineChart(模拟动态生命特征值图)
- AChartEngine应用之LineChart(模拟三角函数sin,cos)
- AChartEngine应用之LineChart(模拟动态生命特征值图)
- Flex3 Chart学习笔记:PieChart(饼图)
- C#chart之PieChart
- MPAndroidChart之PieChart
- MPAndroidChart之PieChart
- JFreeChart饼图(PieChart)
- Flex 饼图PieChart
- linux线程同步(2)-条件变量
- web.xml中配置Struts标记库<taglib>标签总是报错出现红色下划线
- P1313金明的预算方案 动态规划(未解决)
- 64位ubuntu缺少ia32的lib库解决办法
- linux线程同步(1)-互斥量
- AChartEngine应用之PieChart(饼图)
- 安装gef,subclipse,m2eclipse,m2e-extras插件
- hdu 5319 Painter(模拟)(思维)(模拟)
- PostgreSQL(表的继承和分区)
- SpringMVC Valication的使用
- Main函数参数argc,argv说明
- shell脚本结构示例
- 依赖倒置原则
- 阐述二维码的原理以及使用google api和PHP QR Code来生成二维码