android图表引擎AchartEngine制作柱图源码
导读:网上关于AChartEngine绘制柱状图的介绍非差稀少,而AchartEngine它本身Api帮助文档写的非常的简略,给我们学习带来很大的不便。所以我在这里凭借个人的理解,以一个简单的柱状图的例子来解释Ach
废话不多说 关于android图表制作引擎AchartEngine的介绍我这里直接略去 大家想要了解它可以直接百度。
网上关于AChartEngine绘制柱状图的介绍非差稀少,而AchartEngine它本身Api帮助文档写的非常的简略,给我们学习带来很大的不便。所以我在这里凭借个人的理解,以一个简单的柱状图的例子来解释AchartEngine绘制柱图的一个过程,希望会对大家有所帮助。
首先简略的理解一下AchartEngine的API。
AchartEngine的提供的Api非常的简单,其中最重要的两个概念就是数据设置器(dataset)和所谓的描绘器(renderer)。顾名思义,数据设置器就是为我们提供了一系列对图表进行值传入的方法,而描绘器为我们提供了修改图表外观的一些方法。
本例结合简单的SQLite数据库表来建立一张柱状图
以下是我们要用到的数据库表的信息:
其实待会我们要用到的 只有_name和money两个字段,大家只要关注这两个字段即可
首先 我们打开本地数据库 得到游标:
接下去我们要声明一个数据设置器 和一个描绘器
其中getBarRenderer()函数是我们自定义的方法,用于初始化描绘器,其方法具体如下:网络编辑必备工具箱,网络编辑之家(www.editorsky.com)荣誉出品
文章格式化编辑
繁简体相互转换
文字挑错功能(1000个错别字词库)
可定制段前是否空格
只需鼠标点击
全傻瓜式操作
文字挑错实例:洁白无暇(洁白无瑕),黄梁美梦(黄粱美梦),美仑美奂(美伦美奂)
02 | public XYMultipleSeriesRenderer getBarRenderer() { |
03 | XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); |
05 | SimpleSeriesRenderer r = new SimpleSeriesRenderer(); |
06 | r.setColor(Color.RED); |
07 | renderer.addSeriesRenderer(r); |
08 | setChartSettings(renderer); |
10 | private void setChartSettings(XYMultipleSeriesRenderer renderer) { |
11 | renderer.setChartTitle( "个人收支表" ); |
12 | renderer.setXTitle( "名单" ); |
13 | renderer.setYTitle( "金额" ); |
14 | renderer.setXAxisMin( 0.5 ); |
15 | renderer.setXAxisMax( 5.5 ); |
16 | renderer.setYAxisMin( 0 ); |
17 | renderer.setYAxisMax( 500 ); |
18 | renderer.setDisplayChartValues( true ); |
19 | renderer.setShowGrid( true ); |
20 | renderer.setXLabels( 0 ); |
接下去我们再来看数据设置器
02 | private XYMultipleSeriesDataset getBarDataset(Cursor cur) { |
03 | XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); |
04 | CategorySeries series = new CategorySeries( "本月金额" ); |
07 | while (cur.moveToNext()) |
08 | series.add(cur.getDouble(cur.getColumnIndex( "money" ))); |
09 | dataset.addSeries(series.toXYSeries()); |
现在我们一张简单图表就建立好了,但是我们会发现我们并没有用到_name这个字段,所以为了让X轴上面的刻度标签显示为_name这个字段中的值,我们需要写这样一段代码:
4 | renderer.addTextLabel(count,cur.getString(cur.getColumnIndex("_name))); |
另外需要注意的是 在初始化描绘器的时候一定要加上renderer.setXLabels(0); 现在大功告成 ,我们再为这个Activity添加一个跳转图表的Intent就完成了
1 | Intent intent = ChartFactory.getBarChartIntent |
2 | ( this , dataset, renderer, Type.DEFAULT ); |
效果如图: