AChartEngine使用View显示图表
学习过AChartEngine的人肯定都知道,使用ChartFactory创建一张图表可以使用Intent方法,之后调用StartActivity来启用这个Intent,但是这么左右一个坏处,就是当你需要动态显示一张图表的时候,他不停的启动Activity,这样的效率是非常低下的,因为每启动一次Activity就要创建一个线程,虽说之后Activity会被自动释放掉,但是,当你的图表使用在内存较低的手机上时,就很难避免图表颤抖。
而且这种方法还有一个很大的缺陷:一次只能显示一张图表,当需要显示多张图表的时候,这种方法显得很无力。
下面我就简单的说一下AChartEngine中另外一种创建图表的方法:创建一个View。
就以TimeChart为例:
使用的时候我们调用ChartFactory.getTimeChartView()这个函数,函数内的参数和getTimeChartIntent()的参数是一样的,对于使用过getTimeChartIntent方法的人,小光像你你们肯定能很快掌握View的创建。
View创建好了,但是该怎么显示呢?
为了显示这个View,我们需要现在资源文件里定义一个布局,之后将这个View加载到我们定义的布局里面。
相信很多做过Android布局的人都很清楚LinearLayout的用法。下面我就一步步讲该如何创建布局,并将View显示在屏幕上。
首先复制main.xml,在res/layout/下黏贴,并起名为chartshow.xml
修改里面的内容
添加一个布局
<LinearLayout
android:id="@+id/chart_show"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:layout_weight="1"
/>
千万别删掉那个框架LinearLayout啊,当初我刚学习View显示的时候就把整个文件清空了,然后复制上面的布局代码到文件里,结果
。
之后在你的OnCreate()函数里面,你需要加载你的这个布局控件,这里要提醒一下,布局也是控件,其他控件需要他才能用。
//加载这个布局
LinearLayout linearView=(LinearLayout)findViewById(R.id.chart_show);
//创建View,getDemoChartGraphicalView这个是我自己创建的方法代码是:
//public GraphicalView getChartGraphicalView(Context context){
// return ChartFactory.getTimeChartView(context, dataset, renderer,"HH-MM-SS");
//}
GraphicalView chartView=demo.getDemoChartGraphicalView(this);
//创建View需要一个上下文的句柄,这和创建Intent的时候是一样的,
//之后我们需要将View加载到linearView中去
//调用函数:addView
//第一个参数就是上面创建的View,第二个参数是这个View的在布局中的属性,
//别和LinearLayout的属性弄混了
linearView.addView(chartView,
new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
好了,View现在已经可以用了,是不是感觉很简单呢?
显示多张图表,动态显示图表使用View可是会比使用Intent效率高很多,并且方便很多。
至于图表的创建方法,我想大家都懂的吧,这里我也不多说了,就贴一张我从网上找来的图片吧,图片将的很清楚。
还是简单解释下,创建一张表首先要一个系列集Series,然后需要定义一个渲染器SeriesRenderer来勾画自己想要描述的线或者其他图标表示方法的样子。
系列集和渲染器决定了一种数据在表上的画的方法,但是想要直接应用到ChartFactory中,我们还需要一个MultiSeriessRenderer和MultiSeriesDataset,
就像前面使用JFreeChart时一样,创建一个表需要使用的是一个数据集而不是一套数据,之后就要把SeriesRenderer和Series分别加入到MultiSeriessRenderer和MultiSeriesDataset中去。
好了,就说到这里了,嘿嘿请继续关注小光的博客哦。
AChartEngine使用View显示图表的更多相关文章
- [IOS Tableview] cell自定义view显示错误问题
问题介绍:按照tableviewcell的tag自定义cell的view显示的时候,会出现拖动时显示错误情况(在Tableview的范围超出屏幕范围需要滑动的情况下). 我做的是一个下载界面,我为了简 ...
- Android点击View显示PopupWindow,再次重复点击View关闭PopupWindow
Android点击View显示PopupWindow,再次重复点击View关闭PopupWindow 这本身是一个看似很简单的问题,但是如果设置不当,就可能导致莫名其妙失效问题.通常在Andro ...
- 关于pycharm中使用charts无法显示图表的问题(属于个人粗心问题)
在练习用charts库对爬取的数据进行数据分析并图表化时遇到一个问题,无法显示图表,如下: 经过重装charts库等一顿折腾后,终于发现一个问题,看这里: def data_gen(type): le ...
- iOS 开发笔记-控制器tab切换view显示
在开发过程中,我们常常会碰到一种情况就是,在一个controller里面,经常要放很多复杂的控制,最常用的就是tar切换.tar切换,原理就是在一个controller里面,显示另一个controll ...
- java项目中显示图表:struts2整合jfreechart
需要的包: struts2-jfreechart-plugin-2.2.1.1.jar jfreechart-1.0.13.jar jcommon-1.0.17.jar 前台jsp页面中可以使用ifr ...
- .NET MVC+ EF+LINQ 多表联查VIEW显示列表
1.VIEW 页面显示代码 <link href="~/Content/bootstrap.css" rel="stylesheet" /> < ...
- 键盘弹出后上提view隐藏后下拉view还原并修改scroll过程中旋转屏幕到竖屏view显示错误
1,注册键盘相应事件 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillSho ...
- 李洪强iOS开发之-实现点击单行View显示和隐藏Cell
李洪强iOS开发之-实现点击单行View显示和隐藏Cell 实现的效果: .... ....
- MVC:一个View显示多个Model(多个Model你可以使用ViewBag或ViewData , 或者:Model["myInfo"] as)
MVC:一个View显示多个Model 多个Model你可以使用ViewBag或ViewData , 或者:Model["myInfo"] as. 比如: Tuple<str ...
随机推荐
- Java for LeetCode 226 Invert Binary Tree
Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 Trivia: This problem wa ...
- javascript中元素的scrollLeft和scrollTop属性说明
再说意义之前,前说一下这两个属性的适用范围: 注意:这两个属性只能用于元素设置了overflow的css样式中.否者这两个属性没有任何意义.且overflow的值不能为visible,但可以为hidd ...
- JavaScript高级程序设计学习笔记--函数表达式
关于函数声明,它的一个重要特征就是函数声明提升,意思是在执行代码之间会读取函数声明,意思是在执行代码之前会先读取函数声明.这就意味着可以把函数声明放在调用它的语句 后面. sayHi(); funct ...
- SQL Server多表多列更新
student表: lag表: 要求将student表stu_id列为1的stu_nick列和stu_phont列的数据更新为lag表的lag_nick列和lag_phone列. SQL语句: upd ...
- 【转】字符集和字符编码(Charset & Encoding)
相信大家一定碰到过,打开某个网页,却显示一堆像乱码,如"бЇЯАзЪСЯ"."�????????"?还记得HTTP中的Accept-Charset.Accept ...
- Stanford大学机器学习公开课(四):牛顿法、指数分布族、广义线性模型
(一)牛顿法解最大似然估计 牛顿方法(Newton's Method)与梯度下降(Gradient Descent)方法的功能一样,都是对解空间进行搜索的方法.其基本思想如下: 对于一个函数f(x), ...
- MyISAM表的维护和恢复
本节将讨论如何使用myisamchk检查和修复MyISAM表. 同时,你可以用myisamchk来检查,修复和优化数据库表.下面将讲述如何执行这些操作并建立维护计划. 虽然使用myisamchk很安全 ...
- ajaxFileUpload上传文件没反应
调用jquery的ajaxFileUpload异步上传文件,IE浏览器不进入success问题 原因:json转换异常,ie浏览器处理后的返回json没有<pre>标签,直接是完整的jso ...
- 《孙子算经》之"物不知数"题:中国剩余定理
1.<孙子算经>之"物不知数"题 今有物不知其数,三三数之剩二,五五数之剩七,七七数之剩二,问物几何? 2.中国剩余定理 定义: 设 a,b,m 都是整数. 如果 m ...
- mysql里表以及列的增删改查
在一个表里插入数据(增) insert into 表名 (需要插入的列名如 id,name,age)values (1,'张三',20), (2,'李四',30): 查询表内容(查 ...