android图表引擎AchartEngine制作柱图源码

导读:网上关于AChartEngine绘制柱状图的介绍非差稀少,而AchartEngine它本身Api帮助文档写的非常的简略,给我们学习带来很大的不便。所以我在这里凭借个人的理解,以一个简单的柱状图的例子来解释Ach

  废话不多说 关于android图表制作引擎AchartEngine的介绍我这里直接略去 大家想要了解它可以直接百度。

  网上关于AChartEngine绘制柱状图的介绍非差稀少,而AchartEngine它本身Api帮助文档写的非常的简略,给我们学习带来很大的不便。所以我在这里凭借个人的理解,以一个简单的柱状图的例子来解释AchartEngine绘制柱图的一个过程,希望会对大家有所帮助。

  首先简略的理解一下AchartEngine的API。

  AchartEngine的提供的Api非常的简单,其中最重要的两个概念就是数据设置器(dataset)和所谓的描绘器(renderer)。顾名思义,数据设置器就是为我们提供了一系列对图表进行值传入的方法,而描绘器为我们提供了修改图表外观的一些方法。

  本例结合简单的SQLite数据库表来建立一张柱状图

  以下是我们要用到的数据库表的信息:
[img]http://dl.iteye.com/upload/attachment/0070/1632/788691fd-76f4-3c15-8433-90fad4fb6314.png[/img]

其实待会我们要用到的 只有_name和money两个字段,大家只要关注这两个字段即可

  首先 我们打开本地数据库 得到游标:


  接下去我们要声明一个数据设置器 和一个描绘器

  

  其中getBarRenderer()函数是我们自定义的方法,用于初始化描绘器,其方法具体如下:网络编辑必备工具箱,网络编辑之家(www.editorsky.com)荣誉出品

  文章格式化编辑

  繁简体相互转换

  文字挑错功能(1000个错别字词库)

  可定制段前是否空格

  只需鼠标点击

  全傻瓜式操作

  文字挑错实例:洁白无暇(洁白无瑕),黄梁美梦(黄粱美梦),美仑美奂(美伦美奂)


view sourceprint?01   //描绘器设置

02   public XYMultipleSeriesRenderer getBarRenderer() {

03   XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

04   //通过SimpleSeriesDenderer设置描绘器的颜色

05   SimpleSeriesRenderer r = new SimpleSeriesRenderer();

06   r.setColor(Color.RED);

07   renderer.addSeriesRenderer(r);

08   setChartSettings(renderer);//设置描绘器的其他属性

09   return renderer; }

10   private void setChartSettings(XYMultipleSeriesRenderer renderer) {

11   renderer.setChartTitle( "个人收支表" );//设置柱图名称

12   renderer.setXTitle( "名单" );//设置X轴名称

13   renderer.setYTitle( "金额" );//设置Y轴名称

14   renderer.setXAxisMin(0.5);//设置X轴的最小值为0.5

15   renderer.setXAxisMax(5.5);//设置X轴的最大值为5

16   renderer.setYAxisMin(0);//设置Y轴的最小值为0

17   renderer.setYAxisMax(500);//设置Y轴最大值为500

18   renderer.setDisplayChartValues(true); //设置是否在柱体上方显示值

19   renderer.setShowGrid(true);//设置是否在图表中显示网格

20   renderer.setXLabels(0);//设置X轴显示的刻度标签的个数

21   }

22   
  接下去我们再来看数据设置器  view sourceprint?01   //数据设置

02   private XYMultipleSeriesDataset getBarDataset(Cursor cur) {

03   XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

04   CategorySeries series = new CategorySeries( "本月金额");

05   //声明一个柱形图

06   //为柱形图添加值

07   while(cur.moveToNext())

08   series.add(cur.getDouble(cur.getColumnIndex("money")));

09   dataset.addSeries(series.toXYSeries());//添加该柱形图到数据设置列表

10   return dataset; }

11   
  现在我们一张简单图表就建立好了,但是我们会发现我们并没有用到_name这个字段,所以为了让X轴上面的刻度标签显示为_name这个字段中的值,我们需要写这样一段代码:  view sourceprint?1   cur.moveToFirst();

2   int count=1;

3   do{

4   renderer.addTextLabel(count,cur.getString(cur.getColumnIndex("_name)));

5   count++;

6   }while(cur.moveToNext)

7   
  另外需要注意的是  在初始化描绘器的时候一定要加上renderer.setXLabels(0);   现在大功告成 ,我们再为这个Activity添加一个跳转图表的Intent就完成了  view sourceprint?1   Intent intent = ChartFactory.getBarChartIntent

2   (this , dataset, renderer, Type.DEFAULT );

3   


  效果如图:


[img]http://dl.iteye.com/upload/attachment/0070/1634/1ae3d5be-c602-34ad-879e-8f2837624919.png[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值