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中去。
好了,就说到这里了,嘿嘿请继续关注小光的博客哦。

时间: 2024-12-05 15:36:43

AChartEngine使用View显示图表的相关文章

自定义进阶2——自定义View显示超大图片

上一节(自定义初学5--自定义View显示图片)已经说了如何自定义View显示图片.做android时,加载图片是避免不了的,加载网络图片还需要异步加载,最烦人的就是经常出现OOM,为了避免这样的问题,我们一般这样解决: 根据图片控件的大小对图片进行压缩显示. 如果图片数量非常多,则会使用LruCache等缓存机制,将所有图片占据的内容维持在一个范围内. 有时加载图片还会遇到特殊情况--就是单个图片非常巨大,还不允许压缩.那么对于这种需求,该如何做呢? 首先不压缩,按照原图尺寸加载,那么屏幕肯定

李洪强iOS开发之-实现点击单行View显示和隐藏Cell

李洪强iOS开发之-实现点击单行View显示和隐藏Cell 实现的效果:  ....

[IOS Tableview] cell自定义view显示错误问题

问题介绍:按照tableviewcell的tag自定义cell的view显示的时候,会出现拖动时显示错误情况. 我做的是一个下载界面,我为了简化问题,就把问题设定为,tag==1的cell已下载,加载时就把已下载的cell的label显示为蓝色.其余默认为黑. 比如我在代码里,想要tag==1的cell的label字体为蓝色,这样写就会出现上下拖动时tag==11的也出现蓝色(视具体情况而定). if([cell.tag==1){ //tag==1就把label显示为蓝色 cell.label.

iOS 将一个View显示覆盖到NavigationBar上面

将一个View显示覆盖到NavigationBar上面,不能将将要显示的View添加到self.view上面,这样无法覆盖navigationBar. 如果需要覆盖NavigationBar,则将显示的view添加到self.navigationController.view [self.navigationController.view addSubview:newView]; 效果如下: -- end 版权声明:本文为博主原创文章,转载请注明来源:http://blog.csdn.net/z

猫猫学iOS 之控制器view显示中view的父子关系及controller的父子关系_解决屏幕旋转不能传递事件问题

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:效果 二:项目代码 这个Demo用的几个控制器分别画了不通的xib,随便拖拽了几个空间,主要是几个按钮的切换,主要代码展示下: // // NYViewController.m // 控制器的view的显示 // // Created by apple on 14-10-10. // Copyright (c) 2014年 heima. All rights

ViewModel在MVC3中的应用:一个view显示多个model

在mvc3中,默认是一张数据表对应一个model,一个视图 view只显示一个model. 但是有些时候,我们一个视图上可能需要显示多个model的内容,即一个网页可能要展示多张表的信息,那怎么办呢,这时候,ViewModel就能派上用途了. ViewModel,顾名思义,专为view服务的model,专门为view视图准备的model. 我这里假设有两个张数据表,Article表和Information表,都需要在首页上显示出来,看看下面的步骤: 一.先写出两张表各自对应的model和相应的D

Android自定义view之view显示流程

自定义view之measure.layout.draw三大流程 一个view要显示出来,需要经过测量.布局和绘制这三个过程,本章就这三个流程详细探讨一下.View的三大流程具体分析起来比较复杂,本文不会从根源详细地分析,但是可以保证能达到实用的地步. 1. measure过程 1.1 理解MeasureSpec View的测量方法为public final void measure(int widthMeasureSpec, int heightMeasureSpec)和protected vo

Highcharts、AJAX、JSON、JQuery实现动态数据交互显示图表柱形图

上个图给大家看下效果. 点击  查看图表 如下图展示效果 Highcharts简介 Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表,并且免费提供给个人学习.个人网站和非商业用途使用.HighCharts支持的图表类型有曲线图.区域图.柱状图.饼状图.散状点图和综合图表. 2.Highcharts 中文API 实例网站     http://www.hcharts.cn/index.php ---------

mvc 一个View显示多个Model

今天做到这个,记录一下. 解决的办法是.定义一个class:viewModel.把要显示的model放进去. Controller: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcService.Models; namespace MvcService.Controllers { public class vie