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/下黏贴,并起名为ch artshow.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显示的时候就把整个文件清空了,然后复制 上面的布局代码到文件里,结果 AChartEngine使用View显示图表
   之后在你的OnCreate()函数里面,你需要加载你的这个布局控件,这里要提醒一下,布局也是控件, 其他控件需要他才能用。
   //加载这个布局
   LinearLayout linearView=(LinearLayout)findViewById(R.id.chart_sh ow);
   //创建View,getDemoChartGraphicalVie w这个是 我自己创建的方法代 码是:
   //public GraphicalView getChartGraphicalView (Context context){
   //     return ChartFactory.getTimeChartView(context, dataset, renderer,"HH-MM-SS ");
   //}
   GraphicalView chartView=demo.getDemoChartGraphicalVie w(this);
   //创建View需要一个上下文的句柄,这和创建Intent的时候是一样的,
   //之后我们需要将View加载到linearView中去
   //调用函数:addView
   //第一个参数就是上面创建的View,第二个参数是这个View的在布局中的属性,
   //别和LinearLayout的属性弄混了
   linearView.addView(chartView,
                            new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
   好了,View现在已经可以用了,是不是感觉很简单呢?
   显示多张图表,动态显示图表使用View可是会比使用Intent效率高很多,并且方便很多。
   至于图表的创建方法,我想大家都懂的吧,这里我也不多说了,就贴一张我从网上找来的图片吧,图片将的很清楚。
AChartEngine使用View显示图表

还是简单解释下,创建一张表首先要一个系列集Series,然后需要定义一个渲染器SeriesRenderer来勾画自己想要描述的线或者其他图标表示方法的样子。

系列集和渲染器决定了一种数据在表上的画的方法,但是想要直接应用到ChartFactory中,我们还需要一个MultiSeriessRendererMultiSeriesDataset

就像前面使用 JFreeChart 时一样,创建一个表需要使用的是一个数据集而不是一套数据,之后就要把 SeriesRenderer Series 分别加入到 MultiSeriessRenderer MultiSeriesDataset 中去。
好了,就说到这里了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值