android平台上展示图表信息

本文原创,转载请注明出处,谢谢!

本文谈一谈如何在android上展示出漂亮的图表,用以描述信息。

笔者使用的一种方法是:

android上使用WebView控件,在WebView控件上放一个html,在html上利用ichartjs图形库展示web形式的图表。

下面具体讲讲使用过程:

1. 首先介绍一下ichartjs图形库:

ichartjs是一款基于HTML5的图形库,使用纯js语言,利用HTML5的canvas标签绘制各式图形。icharjs致力于为WEB应用提供简单、直观、可交互的体验级图标组件,是WEB图表展示的解决方案。更多细节的使用大家可以上官网(http://www.ichartjs.com/)查看,它很适用于应用具有多平台,多终端的WEB应用,并且适用于iPhone与Android的手机平台。下面是从官网上找的2张效果截图(作者是taylor),你也可以做出来!



2. Android 2.3.3 上实测:

需要在AndroidManifest.xml里声明如下语句:

     <uses-permission android:name="android.permission.INTERNET" /> 
在项目assets目录中创建分类的文件夹,依据个人喜好设置分类,笔者设置如下:


在需要展示图表的Activity中声明WebView控件,并设置WebView相应的属性:

		//加载HTML页面,可以本地,可以远程
		wb.loadUrl("file:///android_asset/analyse/html/demo1.html");
		//这样在demo1.html页面中的js就可以与myObj对象进行交互
		wb.addJavascriptInterface(new MyObject(this), "myObj");
		//获取WebView的设置对象
		WebSettings webSettings=wb.getSettings();	
		//设置开启js调用
		webSettings.setJavaScriptEnabled(true);

MyObject就是一个POJO,开发者可以根据业务需要提供任意多的方法,比如可以设置一些字段,把它们当做参数给js,可以暴露一些方法供js调用等等。

笔者向js传递json格式的数据:

	JSONArray jsonArray;
	JSONObject object;

	public String getJson() {
		object=new JSONObject();
		try {
			object.put("days", jsonArray);
			
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return object.toString();
	}	
	private void setJsonArray() {
		JSONObject map1 = new JSONObject();
		JSONObject map2 = new JSONObject();
		JSONObject map3 = new JSONObject();
		try {
			map1.put("time", "第一周");
			map2.put("time", "第二周");
			map3.put("time", "第三周");			
			jsonArray = new JSONArray();
			jsonArray.put(map1);
			jsonArray.put(map2);
			jsonArray.put(map3);
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
即把jsonobject传递给js,在js代码中便可以使用了:

		var jsonResult = JSON.parse(window.myObj.getJson());
		var labels = [];
		for ( var i = 0; i < jsonResult.days.length; i++) {
			labels.push(jsonResult.days[i].time);
		}
最后利用java代码传来的数据再利用ichartjs提供的工具就可以做出漂亮的图表显示在android设备中了!






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值