Android中图表AChartEngine学习使用与例子

摘要:
在AndroidManifest中配置文件。xml文件<接下来,创建一个AChart接口公共接口AChartAbstract{//***,以获取当前类型*/public Intent getIntent(上下文上下文)图标的Intent实例;

很多时候项目中我们需要对一些统计数据进行绘制表格,更多直观查看报表分析结果。基本有以下几种方法:

1:可以进行android  api进行draw这样的话,效率比较低

2:使用开源绘表引擎,这样效率比较高.下面就介绍一种。

AChartEngine(简称ACE)是Google的一个开源图表库(for Android)。它功能强大,支持散点图、折线图、饼图、气泡图、柱状图、短棒图、仪表图等多种图表。

该项目地址位于: http://code.google.com/p/achartengine/

你可以选择合适的版本下载,每个版本都有一个jar包、实例源代码和java doc提供下载。当前最新版本为1.1.0。

Android中图表AChartEngine学习使用与例子第1张 Android中图表AChartEngine学习使用与例子第2张 

上面是两幅用该引擎绘制出来的图标例子.

Android中图表AChartEngine学习使用与例子第3张

如上图所示:可以有demo源代码,文档和jar包,根据所需进行下载:

下面稍微演示一下生成一个树状图:

1:新建项目,把jar引入进去

Android中图表AChartEngine学习使用与例子第4张

2:在Androidmanifest.xml文件中进行配置文件

 <activity android:name="org.achartengine.GraphicalActivity" />

因为接下来要考这个Activity进行显示图表

3:下面创建一个AChart接口 

  1. public interface AChartAbstract {  
  2.       
  3.     /** 
  4.      * 获取一个当前类型图标的Intent实例 
  5.      */  
  6.     public Intent getIntent(Context context);  
  7. }  

4:创建BarChart.java进行准备数据源和引擎设置

  

  1. public class BarChart implements AChartAbstract {  
  2.   
  3.     public Intent getIntent(Context context) {  
  4.         Intent mIntent=ChartFactory.getBarChartIntent(context, getDataSet(), getRenderer(), Type.STACKED, "当月开票金额树状图");  
  5.         return mIntent;  
  6.     }  
  7.   
  8.     /** 
  9.      * 构造数据 
  10.      * @return 
  11.      */  
  12.     public XYMultipleSeriesDataset getDataSet() {  
  13.         // 构造数据  
  14.         XYMultipleSeriesDataset barDataset = new XYMultipleSeriesDataset();  
  15.         CategorySeries barSeries = new CategorySeries("2014年3月");  
  16.         barSeries.add(865.5969);  
  17.         barSeries.add(2492.6479);  
  18.         barSeries.add(891.0137);  
  19.         barSeries.add(0.0);  
  20.         barSeries.add(691.0568);  
  21.         barDataset.addSeries(barSeries.toXYSeries());  
  22.         return barDataset;  
  23.     }  
  24.   
  25.     /** 
  26.      * 构造渲染器 
  27.      * @return 
  28.      */  
  29.     public XYMultipleSeriesRenderer getRenderer() {  
  30.         XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();  
  31. //      renderer.setChartTitle("当月开票");  
  32. //      // 设置标题的字体大小  
  33. //      renderer.setChartTitleTextSize(16);  
  34.         renderer.setXTitle("事业部");  
  35.         renderer.setYTitle("单位(万元)");  
  36.         renderer.setAxesColor(Color.WHITE);  
  37.         renderer.setLabelsColor(Color.WHITE);  
  38.         // 设置X轴的最小数字和最大数字  
  39.         renderer.setXAxisMin(0.5);  
  40.         renderer.setXAxisMax(5.5);  
  41.         // 设置Y轴的最小数字和最大数字  
  42.         renderer.setYAxisMin(0);  
  43.         renderer.setYAxisMax(3000);  
  44.         renderer.addXTextLabel(1, "电网");  
  45.         renderer.addXTextLabel(2, "通信");  
  46.         renderer.addXTextLabel(3, "宽带");  
  47.         renderer.addXTextLabel(4, "专网");  
  48.         renderer.addXTextLabel(5, "轨交");  
  49.         renderer.setZoomButtonsVisible(true);  
  50.         // 设置渲染器允许放大缩小  
  51.         renderer.setZoomEnabled(true);  
  52.         // 消除锯齿  
  53.         renderer.setAntialiasing(true);  
  54.         // 设置背景颜色  
  55.         renderer.setApplyBackgroundColor(true);  
  56.         renderer.setBackgroundColor(Color.GRAY);  
  57.         // 设置每条柱子的颜色  
  58.         SimpleSeriesRenderer sr = new SimpleSeriesRenderer();  
  59.         sr.setColor(Color.YELLOW);  
  60.         renderer.addSeriesRenderer(sr);  
  61.         // 设置每个柱子上是否显示数值  
  62.         renderer.getSeriesRendererAt(0).setDisplayChartValues(true);  
  63.         // X轴的近似坐标数  (这样不显示横坐标)  
  64.         renderer.setXLabels(0);  
  65.         // Y轴的近似坐标数  
  66.         renderer.setYLabels(6);  
  67.         // 刻度线与X轴坐标文字左侧对齐  
  68.         renderer.setXLabelsAlign(Align.LEFT);  
  69.         // Y轴与Y轴坐标文字左对齐  
  70.         renderer.setYLabelsAlign(Align.LEFT);  
  71.         // 允许左右拖动,但不允许上下拖动.  
  72.         renderer.setPanEnabled(true, false);  
  73.         // 柱子间宽度  
  74.         renderer.setBarSpacing(0.5f);  
  75.         // 设置X,Y轴单位的字体大小  
  76.         renderer.setAxisTitleTextSize(20);  
  77.         return renderer;  
  78.     }  


最后主函数直接

  

  1. Intent lineIntent = new BarChart().getIntent(this);  
  2.             startActivity(lineIntent);  

直接启动Androidmanifest.xml已经配置的activity就可以显示树状图了。

Android中图表AChartEngine学习使用与例子第5张
上面的注释已经写的比较清楚了。基本是可以明白的。更多图表的例子可以在http://code.google.com/p/achartengine/中下载demo

免责声明:文章转载自《Android中图表AChartEngine学习使用与例子》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇lua以xpcall实现try/catch功能java实现的18位身份证格式验证算法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

玩转jquery插件之flexigrid 【转】

http://blog.csdn.net/anshao/archive/2009/08/12/4435167.aspx 用插件来做规律性很强的数据展现是个不错的选择,jquery插件家族中这类插件通常叫做table或者grid,本人用过两个有名的插件:jqgrid和flexgrid,自己也曾经在使用jquery之前尝试过自己写grid插件,这篇文章将就fl...

NXOpen 批量导出STP、IGS、DWG、DXF、PDF(五合一)

C++ 关键代码 //导出STPvoid ExportFile::ExportSTPfile(){    try    {  UF_initialize();    string  filepath = strDir +  "\" ;//拼接路径   //获取图层过滤   PropertyList *stringLayerProps = stringLay...

C# chart控件基础使用

基本介绍:chart(图表) 功能:主要用来绘制折线图,柱状图与饼状图,也可达到动态效果(例如作示波器); 需要说明  一个chart可以包含多个chartArea。 chartArea是具体的坐标区域。 每一个chartArea主要包含X轴,Y轴,副X轴(上方),副Y轴(右方),绑定的线条,绑定的图例。  数据列可以有许多,只要将线条绑定到chartAr...

Extjs4——向TreeStore中加载数据

这里分别介绍使用JSON本地数据,JSP和XML向TreeStore中加载数据的实现方式 1.本地JSON数据: 注意txt文件中叶子节点一定要加上leaf:true的属性,否则文件会无限展开的 var tree = new Ext.tree.TreePanel({ store: new Ext.data.TreeStore({...

工具篇01-代码扫描工具Gamma

1. Gamma简介 Gamma是由Acellere开发的智能软件分析平台。 它通过加快代码审查,支持开发人员和团队在更短的时间内构建更高质量的软件。 它会自动对代码中的热点进行优先级排序,并提供清晰的可视化效果。 凭借其多向量诊断技术,它可以分析多个镜头的软件,包括软件设计,使公司能够透明地管理和改进其软件质量。 2. Gamma使用教程 1)注册账号...

VSCode 开发Vue 代码格式化setting.json设置

  { // vscode默认启用了根据文件类型自动设置tabsize的选项 "editor.detectIndentation": false, // 重新设定tabsize "editor.tabSize": 2, // #每次保存的时候将代码按eslint格式进行修复 "eslint.autoFixO...