Android报表解决方案 使用开源组件iChartjs(一)
2015-10-20 21:00
483 查看
======转自http://blog.csdn.net/wanglong0537/article/details/8446792=======
随着移动设备的日益增多,以前互联网的一些常用功能逐渐在移动互联网上逐渐迁移 今天我们看一下我们经常用到的报表是怎样实现在android客户端的
接触过android图标的人应该都知道Achartengine 一个android应用的图表库 利用android本地的API来进行图标的绘制 适用于数据分析,报表显示,也涵盖了一些常用的图标,是个易学易用的图表库,但是他的实现的效果有局限性,交互性不强
可以看下实现的效果 :
![](http://pic002.cnblogs.com/images/2012/318952/2012072709255834.png)
![](http://pic002.cnblogs.com/images/2012/318952/2012072709271469.png)
![](http://pic002.cnblogs.com/images/2012/318952/2012072709260888.png)
移动设备目前已经完美支持HTML5 今天介绍一下利用html5开发本地化的报表
使用的开源报表类库iCharjs ,国内开源小组开发 有详细的中英文API文档以及实例代码 这里不作太多介绍 可以去官方网站详细了解 http://www.ichartjs.com/
下面介绍使用ichartjs开发本地化报表
首先在官网下载ichartjs类库包 ichart-1.0.js
新建android项目ichartjstest
在assets目录下放置报表文件 报表基于HTML 所以要创建html文件 如下图 目录结构根据项目要求可以自己定义
![](http://img.my.csdn.net/uploads/201212/28/1356685235_7270.jpg)
html中创建图表代码如下:
[html] view
plaincopy
<html>
<head>
<meta charset="UTF-8" />
<script type="text/javascript" src="ichart-1.0.min.js"></script>
<script type="text/javascript">
$(function(){
var data = [
{
name : '北京',
value:[2,12,14,20,28,32,34,36,33,24,14,4],
color:'#1f7e92'
}
];
var chart = new iChart.Area2D({
render : 'canvasDiv',
data: data,
turn_off_touchmove:true,
title : '北京2012年平均温度情况',
width : 800,
height : 400,
labels:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]
});
chart.draw();
});
</script>
</head>
<body>
<div id='canvasDiv'></div>
</body>
</html>
html文件创建过程这里参考ichartjs教程
![](http://blog.csdn.net/wanglong0537/article/details/8446792)
创建后就要在activity中显示该图表了 android中可以通过WebView来显示
layout文件很简单 只需要添加WebView标签就可以
[html] view
plaincopy
<WebView
android:id="@+id/wv"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
当然WebView还要做很多配置 具体设置看下面代码
[java] view
plaincopy
<span style="white-space:pre"> </span>wv = (WebView) findViewById(R.id.wv);
wv.getSettings().setJavaScriptEnabled(true); //设置WebView支持javascript
wv.getSettings().setUseWideViewPort(true);<span style="white-space:pre"> </span>//设置是当前html界面自适应屏幕
wv.getSettings().setSupportZoom(true); //设置支持缩放
wv.getSettings().setBuiltInZoomControls(true);//显示缩放控件
wv.getSettings().setLoadWithOverviewMode(true);
wv.requestFocus();
wv.loadUrl("file:///android_asset/mianji_chart.html"); //加载assert目录下的文件
这样可以显示报表了
![](http://img.my.csdn.net/uploads/201212/28/1356683876_5848.png)
![](http://img.my.csdn.net/uploads/201212/28/1356683885_3042.png)
![](http://img.my.csdn.net/uploads/201212/28/1356683982_5905.png)
效果像上图一样 可以进行缩放、拖动等操作,ichartjs支持点击、触摸等交互 所以会消化掉android屏幕的touchmove事件 导致图表不能够拖动
这里需要增加属性 turn_off_touchmove:true 来去掉事件 就可以正常拖动了
OK 大功告成 是不是很简单,当然这里只是实现了本地化的数据加载 如果需要根据查询数据进行图标展示 ,这里就要进行服务器数据查询,然后根据数据来展示图表,这个也是可以实现的,需要通过js调用,下次再进行详细介绍吧
随着移动设备的日益增多,以前互联网的一些常用功能逐渐在移动互联网上逐渐迁移 今天我们看一下我们经常用到的报表是怎样实现在android客户端的
接触过android图标的人应该都知道Achartengine 一个android应用的图表库 利用android本地的API来进行图标的绘制 适用于数据分析,报表显示,也涵盖了一些常用的图标,是个易学易用的图表库,但是他的实现的效果有局限性,交互性不强
可以看下实现的效果 :
![](http://pic002.cnblogs.com/images/2012/318952/2012072709255834.png)
![](http://pic002.cnblogs.com/images/2012/318952/2012072709271469.png)
![](http://pic002.cnblogs.com/images/2012/318952/2012072709260888.png)
移动设备目前已经完美支持HTML5 今天介绍一下利用html5开发本地化的报表
使用的开源报表类库iCharjs ,国内开源小组开发 有详细的中英文API文档以及实例代码 这里不作太多介绍 可以去官方网站详细了解 http://www.ichartjs.com/
下面介绍使用ichartjs开发本地化报表
首先在官网下载ichartjs类库包 ichart-1.0.js
新建android项目ichartjstest
在assets目录下放置报表文件 报表基于HTML 所以要创建html文件 如下图 目录结构根据项目要求可以自己定义
![](http://img.my.csdn.net/uploads/201212/28/1356685235_7270.jpg)
html中创建图表代码如下:
[html] view
plaincopy
<html>
<head>
<meta charset="UTF-8" />
<script type="text/javascript" src="ichart-1.0.min.js"></script>
<script type="text/javascript">
$(function(){
var data = [
{
name : '北京',
value:[2,12,14,20,28,32,34,36,33,24,14,4],
color:'#1f7e92'
}
];
var chart = new iChart.Area2D({
render : 'canvasDiv',
data: data,
turn_off_touchmove:true,
title : '北京2012年平均温度情况',
width : 800,
height : 400,
labels:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]
});
chart.draw();
});
</script>
</head>
<body>
<div id='canvasDiv'></div>
</body>
</html>
html文件创建过程这里参考ichartjs教程
创建后就要在activity中显示该图表了 android中可以通过WebView来显示
layout文件很简单 只需要添加WebView标签就可以
[html] view
plaincopy
<WebView
android:id="@+id/wv"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
当然WebView还要做很多配置 具体设置看下面代码
[java] view
plaincopy
<span style="white-space:pre"> </span>wv = (WebView) findViewById(R.id.wv);
wv.getSettings().setJavaScriptEnabled(true); //设置WebView支持javascript
wv.getSettings().setUseWideViewPort(true);<span style="white-space:pre"> </span>//设置是当前html界面自适应屏幕
wv.getSettings().setSupportZoom(true); //设置支持缩放
wv.getSettings().setBuiltInZoomControls(true);//显示缩放控件
wv.getSettings().setLoadWithOverviewMode(true);
wv.requestFocus();
wv.loadUrl("file:///android_asset/mianji_chart.html"); //加载assert目录下的文件
这样可以显示报表了
![](http://img.my.csdn.net/uploads/201212/28/1356683876_5848.png)
![](http://img.my.csdn.net/uploads/201212/28/1356683885_3042.png)
![](http://img.my.csdn.net/uploads/201212/28/1356683982_5905.png)
效果像上图一样 可以进行缩放、拖动等操作,ichartjs支持点击、触摸等交互 所以会消化掉android屏幕的touchmove事件 导致图表不能够拖动
这里需要增加属性 turn_off_touchmove:true 来去掉事件 就可以正常拖动了
OK 大功告成 是不是很简单,当然这里只是实现了本地化的数据加载 如果需要根据查询数据进行图标展示 ,这里就要进行服务器数据查询,然后根据数据来展示图表,这个也是可以实现的,需要通过js调用,下次再进行详细介绍吧
相关文章推荐
- Android视频播放---VideoView
- Android的资源文件分类
- 在Android的Settings的数据库中加入自己的变量的方法
- android解压缩GZIP格式的网页数据
- android SharedPreference的简单使用(登陆界面记住密码)
- Android 图片选择器
- 如何反编译Android的Apk文件获取其代码和资源文件
- Android中分类的ListView实现
- ubuntu13.04下载android4.0.1源码过程
- Android Studio 使用技巧(三)
- Android Studio 使用技巧(二)
- Android Studio 使用技巧(一)
- Android EditText添加图片
- Android打开指定应用程序
- Android第三方开源ImageLoader的使用(一)
- android 随机云标签(圆形)
- Android studio通过JNI调用动态链接库SO
- 【Andoid杂谈】Android TextView中显示超文本(HTML)内容
- 跟Android源码:获取文件的缓存大小
- android VideoView实现视频的播放