echarts方式实现android图表展示
来源:互联网 发布:淘宝万艾可 编辑:程序博客网 时间:2024/06/06 10:40
采用webview加载js的方式,虽然理论上会比较耗费资源
ECharts下载地址:ECharts
以下是一个简单的例子:
布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.hzbst.echartst.MainActivity" ><LinearLayout android:id="@+id/bt_ly" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" ><Button android:id="@+id/linechart_bt" style="?android:attr/buttonStyleSmall" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="折线图" /> <Button android:id="@+id/barchart_bt" style="?android:attr/buttonStyleSmall" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="柱状图" /><Button android:id="@+id/piechart_bt" style="?android:attr/buttonStyleSmall" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="饼状图" /></LinearLayout><WebView android:id="@+id/chartshow_wb" android:layout_below="@id/bt_ly" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
对应的Activity如下,核心代码就是调用asset中的js文件。然后再调用的javascript函数。
package com.hzbst.echartst;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.Button;public class MainActivity extends Activity implements OnClickListener{private Button linechart_bt;private Button barchart_bt;private Button piechart_bt;private WebView chartshow_wb;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();}/** * 初始化页面元素 */private void initView(){linechart_bt=(Button)findViewById(R.id.linechart_bt);barchart_bt=(Button)findViewById(R.id.barchart_bt);piechart_bt=(Button)findViewById(R.id.piechart_bt);linechart_bt.setOnClickListener(this);barchart_bt.setOnClickListener(this);piechart_bt.setOnClickListener(this);chartshow_wb=(WebView)findViewById(R.id.chartshow_wb);//进行webwiev的一堆设置//开启本地文件读取(默认为true,不设置也可以)chartshow_wb.getSettings().setAllowFileAccess(true);//开启脚本支持chartshow_wb.getSettings().setJavaScriptEnabled(true);chartshow_wb.loadUrl("file:///android_asset/echart/myechart.html");}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.linechart_bt:chartshow_wb.loadUrl("javascript:createChart('line',[89,78,77]);"); break;case R.id.barchart_bt:chartshow_wb.loadUrl("javascript:createChart('bar',[89,78,77]);"); break;case R.id.piechart_bt:chartshow_wb.loadUrl("javascript:createChart('pie',[89,78,77]);"); break;default:break;}}}
对应的html页面代码:
<script type="text/javascript"> //初始化路径 var myChart; require.config({ paths: { echarts: './js' } }); // 通用属性定义 var options = { title : { text : "Echart测试" }, tooltip : { show : false }, toolbox : { show : false }, }; //创建折线图 function createLineChart(dataArray){ options = { xAxis : [ { type : 'category', boundaryGap : false, data : ['第一种','第二种','第三种'] } ], yAxis : [ { type : 'value' } ], series : [ { name:'成交', type:'line', smooth:true, itemStyle: {normal: {areaStyle: {type: 'default'}}}, data:dataArray } ] }; } //创建柱状图 function createBarChart(dataArray){ options = { xAxis : [ { type : 'category', data : ['第一种','第二种','第三种'] } ], yAxis : [ { type : 'value' } ], series : [ { name:'成交', type:'bar', data:dataArray } ] }; } //创建饼状图 function createPieChart(dataArray){ options = { series : [ { type:'pie', radius : '55%', center: ['50%', '60%'], data:[ {value:335, name:'直接访问'}, {value:310, name:'邮件营销'}, {value:234, name:'联盟广告'}, {value:135, name:'视频广告'}, {value:1548, name:'搜索引擎'} ] } ] }; } function createChart(chartKind,dataArray){ if (chartKind=='line') { doCreatChart(createLineChart(dataArray)); }; if (chartKind=='bar') { doCreatChart(createBarChart(dataArray)); }; if (chartKind=='pie') { doCreatChart(createPieChart(dataArray)); }; } function doCreatChart(specificChartFunction){ require( ['echarts','echarts/theme/macarons','echarts/chart/line', 'echarts/chart/bar','echarts/chart/pie' ], function(ec,theme){ myChart =ec.init(document.getElementById('main'),theme); myChart.showLoading({ text : "图表数据正在努力加载..." }); specificChartFunction; myChart.setOption(options); //先把可选项注入myChart中 myChart.hideLoading(); } ); } //createChart('line',[89,78,77]); //createChart('bar',[89,78,77]); //createChart('pie',[89,78,77]); </script>
阅读全文
0 0
- echarts方式实现android图表展示
- 基于echarts实现图表展示
- 基于echarts实现图表展示
- ECharts动态图表展示
- Bmob+Android+ECharts 实现移动端数据上传与图表展示
- 通过百度echarts实现数据图表展示功能
- 前端 js图表展示 Echarts
- echarts-springmvc+echarts实现图表
- echarts-springmvc+echarts实现图表
- echarts-springmvc+echarts实现图表
- echarts实现统计图表
- Android实现图表绘制和展示
- Android实现 图表 绘制和展示
- Android实现图表绘制和展示
- Android实现图表绘制和展示
- Android实现图表绘制和展示
- Android实现图表绘制和展示
- Android实现图表绘制和展示
- JVM运行机制
- 权限管理数据库设计
- Unity常用插件之DoTween(三)
- 在多PDB环境中,创建common user,并赋予权限。
- Webq前端-HeadFirst-笔记-CH8-字体大小/色彩/装饰/粗细
- echarts方式实现android图表展示
- [解决方案]未知2136143处的非法输入序列
- 我理解的模块化与组件化
- Android中Bitmap和Drawable的相互转换
- JavaScript中定义类或对象
- Java Web架构知识整理
- js中的内置对象
- leetCode---Gas Station
- LeetCode--Add Two Numbers