使用ichartjs生成报表以及和activity交互!
2014-10-11 10:17
423 查看
ichartjs是一款轻量级的图表工具,使用方便。首先把需要的文件放入assets文件夹下。ichart-1.0.js,ichart-1.0.min.js。zhuzhuang_chart.html。zhuzhuang_chart.html为要显示的页面。
<!DOCTYPE html><html> <head> <meta charset="UTF-8" /> <title>ichartjs</title> <script type="text/javascript" src="ichart-1.0.min.js"></script> <script type="text/javascript"> <span style="color:#ff6666;">var chart; var data = new Array(); <span style="white-space:pre"> </span>var contact = window.android.getModels(); <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>eval('data='+contact); <span style="white-space:pre"> </span>var va = eval('('+window.android.getPreference()+')');</span> $(function(){ new iChart.Bar2D({ render : 'canvasDiv', data: data,<span style="white-space:pre"> </span>//动态加载数据 turn_off_touchmove:true, title : { text:va.size*30, color:va.color }, width : 500, height : va.size*30+160, // 动态改变图表的高度 offsetx:20, coordinate:{ width:500, height:va.size*30, <span style="font-family: Arial, Helvetica, sans-serif;">// 动态改变图表的高度</span> grid_color:'#4e5464', axis:{ color:'#4e5464', width:[0,0,8,1] }, scale:[{ position:'bottom', start_scale:0, end_scale:40, scale_space:5, label:{color:'#ffffff'}, listeners:{ parseText:function(t,x,y){ return {text:t} } } }] }, label:{color:'#dcdcdc'}, background_color : '#3c4251', sub_option:{ listeners:{ parseText:function(r,t){ return t; } } }, legend:{enable:false} }).draw(); }); </script> </head> <body> <div id='canvasDiv'></div> </body></html>各个属性的用法可以去查看ichartjs官网,这里就不在累赘了。之后设置webView控件,因为需要使用webView控件进行显示。设置如下:wv.getSettings().setJavaScriptEnabled(true); //设置支持javascript显示 wv.getSettings().setBuiltInZoomControls(true); //设置可以进行缩放wv.addJavascriptInterface(this,"android"); //设置javascript和activity交互的接口,这里设置为本activity。交互方法为:
@JavascriptInterface public String getModels() { String Json = null; try { JSONArray array = new JSONArray(); for(DeviceMobile moblie:listDevice) { JSONObject object = new JSONObject(); object.put("name", moblie.getName()); object.put("value", moblie.getCount()); object.put("color", "#b5bcc5"); array.put(object); } Json = array.toString(); } catch(JSONException e) { e.printStackTrace(); } return Json; } @JavascriptInterface public String getPreference() { JSONObject jsonOb = new JSONObject(); try { String title = station.getText().toString(); jsonOb.put("text", title+"资源统计"); jsonOb.put("color", "#b5bcc5"); jsonOb.put("size", listDevice.size()); } catch(JSONException e) { e.printStackTrace(); } return jsonOb.toString(); }注意到:
@JavascriptInterface为了系统的安全,在android4.2之后如果不加上就不能调用activity中的方法。可能你已经发现到了这里注册了两个方法,返回的类型不一样,一个为Json数组形式,一个味json形式。而且在js中使用的也不一样。调用方法都是window.android.XXX();形式调用。数组对象为:先创建数组类型变量。获取activity之中的数据。使用eval()进行解析赋值。
<span style="color: rgb(255, 102, 102);">var data = new Array(); var contact = window.android.getModels(); eval('data='+contact);</span>非数组对象为:
<span style="color: rgb(255, 102, 102);">var va = eval('('+window.android.getPreference()+')'); </span>通过eval()解析数据,并且返回变量,变量可以通过 va.XX 获取属性。
相关文章推荐
- Nmon工具的使用以及通过nmon_analyse生成分析报表
- Nmon工具的使用以及通过nmon_analyse生成分析报表
- 报表设计中参数、脚本的使用以及生成系统时间
- linux下性能监控工具Nmon的使用以及通过nmon_analyse生成分析报表
- Nmon工具的使用以及通过nmon_analyse生成分析报表
- Nmon工具的使用以及通过nmon_analyse生成分析报表
- 报表设计中参数、脚本的使用以及生成系统时间
- Reporting Service Tips 101(#4) - 使用RS实现报表的自动生成以及在程序中调用RS
- Nmon工具的使用以及通过nmon_analyse生成分析报表
- jasperreport生成html,Excel,PDF报表,数据源使用List
- 使用JFreeChart生成带交互功能的统计图例
- 水晶报表如何使用存储过程生成的结果集
- 使用C#和Excel进行报表开发(三)-生成统计图(Chart)
- Tomcat 下使用itext生成报表
- [转]使用JFreeReport生成报表
- 使用itext生成word格式的报表(by quqi99)
- 使用jxl工具包生成Excel以及读取Excel的方法
- 水晶报表使用经验谈2--使用sql语句直接生成dataset做为报表的数据源!
- ReportView如何使用构造SQL语句带参数的存储过程创建报表以及为rdlc传递参数
- [翻译]如何使用webservice作为数据源去生成Microsoft Reporting Services 2005的报表