前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >帮学长毕业设计总结:AChartEngine创建图表的步骤

帮学长毕业设计总结:AChartEngine创建图表的步骤

作者头像
张拭心 shixinzhang
发布2022-11-30 16:42:57
3440
发布2022-11-30 16:42:57
举报
文章被收录于专栏:拭心的安卓进阶之路

AChartEngine

首先要做的是一个用于展示支出、收入的饼状图,效果如下:

之前没有接触过图表的绘制,经过实现这个功能了解并学习了AChartEngine,这是专门用于android绘制图表(饼状图、条形图)的工具库。目前最新的是achartengine-1.1.0.jar,下载地址:点击打开链接

官方源码访问地址:点击打开链接

具体配置步骤如下:

(1)将下载得到的jar包粘贴到项目的libs文件夹下

(2)右键点击libs下的这个jar包,”buid path“-->"Add to build path",设置构建路径。添加完后会在引用的库中显示该jar包

(3)在AndroidManifest.xml中配置jar包中的一个activity, org.achartengine.GraphicalActivity,好像是绘图要调用他

<activityandroid:name="org.achartengine.GraphicalActivity"/>

这样配置就结束了。

接下来是如何绘制饼状图表:

 (1)创建绘图用的颜色数组: int[] colors = new int[] { Color.RED, Color.YELLOW, Color.BLUE,Color.GREEN};

 (2)创建一个DefaultRenderer方法,用于创建一个Renderer渲染器,其实就相当于一个画板;在里面再创建SimpleSeriesRenderer对象,就是画笔。设定画笔颜色后把画笔加入画板。

代码语言:javascript
复制
<pre name="code" class="java">	protected DefaultRenderer buildCategoryRenderer(int[] colors, List<Tb_outaccount> list) { 
		//创建一个渲染器对象
		DefaultRenderer renderer = new DefaultRenderer(); 
		//list为要在图表中显示的数据集合
		for (int i = 0; i < list.size(); i++) {
			//创建一个画笔
			SimpleSeriesRenderer r = new SimpleSeriesRenderer(); 
			if(list.size() < colors.length){
				//设置画笔颜色
				r.setColor(colors[i]); 		
			}else{
				r.setColor(getRandomColor());
			}
			//放入画板
			renderer.addSeriesRenderer(r);	
		}
<span style="white-space:pre">	</span>/******下面是对画板的一些设置******/
	//不显示底部说明
	renderer.setShowLegend(false);
	//设置标签字体大小
	renderer.setLabelsTextSize(20);
	//设置能缩放图表
	renderer.setZoomButtonsVisible(true);
	renderer.setZoomEnabled(true);
	//设置能移动图表
	renderer.setPanEnabled(false);
	//设置显示数据
	renderer.setDisplayValues(true);
	// 设置饼图标题
	renderer.setChartTitle("饼图标题");
	renderer.setChartTitleTextSize(30);
//	renderer.setClickEnabled(true);

	return renderer; 
}
代码语言:javascript
复制

需要注意:

设置画笔颜色时setColor(color[i])的参数color[i]不要超出第一步创建时的大小,否则会报错。当数据增多时调用自定义颜色,

代码语言:javascript
复制
<span style="font-size:18px;">  r.setColor(getRandomColor())<span style="white-space:pre">		</span>getRandomColor()方法用于随机生成颜色,这里就不贴代码</span>
代码语言:javascript
复制
</pre><p></p><p><span style="font-family:Monaco,MonacoRegular,Courier New,monospace; color:#800080"><span style="font-size:15px; line-height:15px; white-space:pre; background-color:rgb(253,253,253)"><strong> (3)得到画笔后就该创建我们要展示的数据,CategorySeries,以(key,value)的方式添加将要在饼状图表上表示的分类及数据。</strong></span></span></p><p><span style="font-family:Monaco,MonacoRegular,Courier New,monospace; color:#800080"><span style="font-size:15px; line-height:15px; white-space:pre; background-color:rgb(253,253,253)"><strong></strong></span></span></p><pre name="code" class="java"><span style="white-space:pre">		
代码语言:javascript
复制
<span style="white-space:pre">		</span>//得到画板,里面装了各种颜色的画笔
		DefaultRenderer renderer = buildCategoryRenderer(colors,list); 
		//创建数据集合
		CategorySeries categorySeries = new CategorySeries("Vehicles Chart"); 
		String type;
		int money;
		Tb_outaccount outaccount;
		for (int i = 0; i < list.size(); i++) {
			outaccount= list.get(i);
			type = outaccount.getType();
			money = (int) outaccount.getMoney();
			//往数据集合中添加分类及金额
			categorySeries.add(type, money);
			
		}	 
<pre name="code" class="java"><span style="white-space:pre">		</span>//ChartFactory.getPieChartView(context, categorySeries, renderer),返回一个饼状图View,参数为上下文、数据、画板

GraphicalView chartView = ChartFactory.getPieChartView(context, categorySeries, renderer); //添加到响应的布局中 ll.addView(chartView);

代码语言:javascript
复制

这样就完成了图表的创建

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档