AchartEngine 的学习
第一步:
我使用的事AchartEngine 1.1.0 的包。大家要先下在这个包,放到项目中,创建一个lib文件夹。然后倒金项目中去。
然后再AndroidManifest.xml 中需要注册一下
代码是:
第二步:创建一个xml文件 我这里使用的事 rain_2_2.xml
<?xml version="1.0" encoding="utf-8"?>
1 |
<Button |
第三步:主程序代码
import java.util.Date;
import java.util.List;
import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.TimeSeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Paint.Align;
/**
* 折线图
*
/
public class RainViewImp2 {
//将视图封装起来,返回视图
public GraphicalView getChartGraphicalView(Context context,List xvalue, List yvalue){
return ChartFactory.getTimeChartView(context, getDataSet(xvalue,yvalue), getRenderer(), "M/d HH:mm");
}
/*
* 构造数据
* @return
*/
//注: 也可以在这个方法里面直接传入数据,这里我是从外界传入的数据,如果要在各个方法里直接插入数据的话,我的这个被注解掉的就是,
一定要注意把这个点放进barDataset中,也就是 barDataset.addSeries(timeseries);这句代码
public XYMultipleSeriesDataset getDataSet( List xvalue,List yvalue) {
// 构造数据
XYMultipleSeriesDataset barDataset = new XYMultipleSeriesDataset();
TimeSeries timeseries=new TimeSeries("雨量");
// List xvalue=new ArrayList();
// List yvalue=new ArrayList();
// xvalue.add(new Date(355555));
// xvalue.add(new Date(359899));
// xvalue.add(new Date(855555));
//
// yvalue.add(1.0);
// yvalue.add(9.0);
// yvalue.add(22.0);
1 |
for(int i=0;i<xvalue.size();i++){
|
}
然后接下里就要在MainActivity中去调用了
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.achartengine.GraphicalView;
import org.achartengine.model.SeriesSelection;
import com.ezonejs.viewImp.RainViewImp2;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Toast;
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public class ChartLineMainActivity extends Activity implements OnClickListener{
LinearLayout layout2;
RelativeLayout relalayout00;
Button zhandian2;
GraphicalView graphview2;
RainViewImp2 rain2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.rain_2_2);
layout2=(LinearLayout)findViewById(R.id.layouto2);
zhandian2=(Button)findViewById(R.id.linepoint);
//这里注意如果是从外界传入数据,那么就在这里可以传入,也可以将其封装起来,在这里调用,如果是在上面的构造数据是传入数据,这里就不需要了,
我这里是为了动态改变数据而坐的一个简单的例子,下面的这来那个xvalue,yvalue,可以从数据库中得到值,如果你有需要自己传入,这里是初始化 的的数据
一打开图形界面就就能看到这个数据
List xvalue=new ArrayList();
List yvalue=new ArrayList();
xvalue.add(new Date(455555));
xvalue.add(new Date(559899));
xvalue.add(new Date(855555));
yvalue.add(10.0);
yvalue.add(20.0);
yvalue.add(52.0);
rain2=new RainViewImp2();
graphview2=rain2.getChartGraphicalView(getApplicationContext(),xvalue,yvalue);
layout2.addView(graphview2);
graphview2.setOnClickListener(this);
1 |
zhandian2.setOnClickListener(new OnClickListener() {
@Override
|
}
//这里只做了一个监听,就是监听图上数据,当点击图上局数据是会显示详细信息,如果你需要再第二绘图时还有此功能,只要把监听从新设置一下,然后调用就 可以了。
我这里没有实现 第二次点击还有效果,需要时自己设置
第四步:在数函数中调用
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener{
1 |
private Button rainbar2;//折线图
@Override
|
}
这里用到了Intent对象需要在AndroidManifest.xml中注册一下
这是我使用的包,尼克一根据你自己的项目包注册一下,
否则程序一运行就停止,原因就是没有在AndroidManifest.xml中注册。
好了,这样一个简单的折线图就完成了
如果需要做状图的话,很简单只要该getTimeChartView,这个方法就可以了,有时候可能会出错,原因是渲染器造成的,柱状图的渲染器属性设置
和折线图的属性不一样,需要注意看一下。
如果需要的话可以查看官方的API文档,这里为大家提供一个网址
http://www.achartengine.org/content/javadoc/org/achartengine/ChartFactory.html#getCubeLineChartViewandroid.content.Context(, org.achartengine.model.XYMultipleSeriesDataset, org.achartengine.renderer.XYMultipleSeriesRenderer, float)

AchartEngine 的学习的更多相关文章
- Android开发学习之路--图表实现(achartengine/MPAndroidChart)之初体验
已经有一段时间没有更新博客了,在上周离开工作了4年的公司,从此不再安安稳稳地工作了,更多的是接受挑战和实现自身价值的提高.离开了嵌入式linux,从此拥抱移动互联网,也许有点为时已晚,但是相信通过 ...
- Android中图表AChartEngine学习使用与例子
很多时候项目中我们需要对一些统计数据进行绘制表格,更多直观查看报表分析结果.基本有以下几种方法: 1:可以进行android api进行draw这样的话,效率比较低 2:使用开源绘表引擎,这样效率比 ...
- Android学习之 AChartEngine 图表绘制
Android 开源图表绘制工具AChartEngine地址:http://code.google.com/p/achartengine/ AChartEngine Android实现图表绘制和展示( ...
- AChartEngine使用View显示图表
学习过AChartEngine的人肯定都知道,使用ChartFactory创建一张图表可以使用Intent方法,之后调用StartActivity来启用这个Intent,但是这么左右一个坏处,就是当你 ...
- android开源项目学习
FBReaderJ FBReaderJ用于Android平台的电子书阅读器,它支持多种电子书籍格式包括:oeb.ePub和fb2.此外还支持直接读取zip.tar和gzip等压缩文档. 项目地址:ht ...
- 图表引擎AChartEngine 二
这几天项目涉及到android图表绘制,网上找的Demo都是大同小异,也就如上篇博文所写的一样是基本函数的实现.可是所有能找到的Demo都和设计图不符.木有办法,Leader发话啦,万不得已的情况下不 ...
- achartengine画出动态折线图
achartengine画出动态折线图的效果最近有个项目需要用到实时曲线图,我也上网搜索了一下,最后还是选择使用achartengine这个现成的东西,毕竟自己再canvas一下实在是太麻烦,而且项目 ...
- 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代
2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
- Angular2学习笔记(1)
Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...
随机推荐
- Zookeeper集群服务部署
Zookeeper是一个分布式.开源的分布式应用程序协调服务,是Google的Chubby的开源实现,也是和Hadoop.Hbase相互配合的重要组件,作用就是为分布式应用程序提供一致性服务,包括配置 ...
- ACM/ICPC 之 四道MST-Prim解法(POJ1258-POJ1751-POJ2349-POJ3026)
四道MST,适合Prim解法,也可以作为MST练习题. 题意包括在代码中. POJ1258-Agri Net 水题 //Prim-没什么好说的 //接受一个邻接矩阵,求MST //Time:0Ms M ...
- codeforces 501C. Misha and Forest 解题报告
题目链接:http://codeforces.com/problemset/problem/501/C 题目意思:有 n 个点,编号为 0 - n-1.给出 n 个点的度数(即有多少个点跟它有边相连) ...
- telnet测试制定地址端口号
cmd下,命令 telnel+空格+ip或者网站+空格+端口号 端口可以用: 需要开通windows服务:
- 【leetcode】Balanced Binary Tree(middle)
Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...
- MyBatis之代理开发模式
1 mybatis-Dao的代理开发模式 Dao:数据访问对象 原来:定义dao接口,在定义dao的实现类 dao的代理开发模式 只需要定义dao接口,由mybatis产生dao接口的实现类. 1.1 ...
- JDBC题库
一. 填空题 JDBC ,是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问.它由一组用Java语言编写的类和接口组成. JDBC API:供程序员调用的接口与类,集 ...
- 多线程编程3 - GCD
一.简介 在iOS所有实现多线程的方案中,GCD应该是最有魅力的,因为GCD本身是苹果公司为多核的并行运算提出的解决方案.GCD在工作时会自动利用更多的处理器核心,以充分利用更强大的机器.GCD是Gr ...
- Redis内存管理(二)
上一遍详细的写明了Redis为内存管理所做的初始化工作,这篇文章写具体的函数实现. 1.zmalloc_size,返回内存池大小函数,因为库不同,所以这个函数在内部有很多的宏定义,通过具体使用的库来确 ...
- 解决spring+shiro cacheManager 登录报错
一.项目启动,登录报错 org.springframework.beans.factory.BeanCreationException: Error creating bean with name ' ...