在安卓中使用echarts

本文介绍如何将ECharts图表库集成到Android应用中,并通过WebView展示动态交互式的图表。文章提供了一个具体示例,展示了从设置WebView到使用按钮触发JS代码的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看见js写得echarts觉得非常的棒,所以尝试把它也搬到安卓中。

首先:把echarts放进assets下如图:


用webview来呈现\界面,这里选择用按钮来显示js部分,因为加载html文件比较慢,如果不用按钮来出发请选择用线程睡两秒等一下。

wb.getSettings().setAllowFileAccess(true);
		wb.getSettings().setJavaScriptEnabled(true);
		wb.loadUrl("file:///android_asset/echart/index.html"); 
		btn.setOnClickListener(new OnClickListener() {
			
			@Override                        
			public void onClick(View v) {
				wb.loadUrl("javascript:createChart();");  
			}
		});

接下来就是我在html文件里的代码啦····我选择的是echarts官方的案例代码,做个示范:

<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>ECharts</title>
<style>
html, body {
	height: 100%;
	width: 100%; 
	margin: 0;
	padding: 0;
	align: left;
	valign: left;
}
</style>
</head>
<body>
	<div id="main"
		style="height: 100%; width: 100%; border: 0px; text-align: left; align: left; valign: left;"></div>
	<!-- ECharts单文件引入 -->
	<script src="./js/echarts.js"></script>
	<script type="text/javascript">
    //初始化路径
    var myChart;  
     require.config({
            paths: {
                echarts: './js'
            }
        });
   

        //创建折线图
        function createLineChart(){
        	options = {
        		    title : {
        		        text: '某地区蒸发量和降水量',
        		        subtext: '纯属虚构',
        		        x:'left'
        		        
        		    },
        		    tooltip : {
        		        trigger: 'axis'
        		    },
        		    legend: {
        		        data:['蒸发量','降水量']
        		    },
        		    toolbox: {
        		        show : true,
        		        feature : {
        		            mark : {show: true},
        		            dataView : {show: true, readOnly: false},
        		            magicType : {show: true, type: ['line', 'bar']},
        		            restore : {show: true},
        		            saveAsImage : {show: true}
        		        }
        		    },
        		    calculable : true,
        		    xAxis : [
        		        {
        		            type : 'category',
        		            data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
        		        }
        		    ],
        		    yAxis : [
        		        {
        		            type : 'value'
        		        }
        		    ],
        		    series : [
        		        {
        		            name:'蒸发量',
        		            type:'bar',
        		            data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
        		            markPoint : {
        		                data : [
        		                    {type : 'max', name: '最大值'},
        		                    {type : 'min', name: '最小值'}
        		                ]
        		            },
        		            markLine : {
        		                data : [
        		                    {type : 'average', name: '平均值'}
        		                ]
        		            }
        		        },
        		        {
        		            name:'降水量',
        		            type:'bar',
        		            data:[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
        		            markPoint : {
        		                data : [
        		                    {name : '年最高', value : 182.2, xAxis: 7, yAxis: 183, symbolSize:18},
        		                    {name : '年最低', value : 2.3, xAxis: 11, yAxis: 3}
        		                ]
        		            },
        		            markLine : {
        		                data : [
        		                    {type : 'average', name : '平均值'}
        		                ]
        		            }
        		        }
        		    ]
        		};
    }

        function createChart(){
        	 doCreatChart(createLineChart());
        }
    
        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(); 
            }
        );
        }

   
    </script>
</body>

其实这里应该放一张效果动态图,但我不会···真的非常炫酷,可以拖拽的图表,和pc呈现出的效果一样一样的··


要在 Android使用 ECharts 绘制折线图,您需要按照以下步骤进行操作: 1. 在您的 Android 项目中创建一个 assets 目录,并将 ECharts JavaScript 库文件放到该目录中。 2. 创建一个 HTML 文件,将 ECharts 初始化代码嵌入其中,并将该文件放到 assets 目录中。 3. 在 WebView 控件中加载该 HTML 文件,以显示您的 ECharts 图表。 4. 在 ECharts 初始化代码中使用 ECharts API 配置您的图表,包括数据和样式。 下面是一个示例代码片段,演示如何使用 ECharts 绘制折线图: ```java WebView webView = findViewById(R.id.webView); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webView.setWebViewClient(new WebViewClient() { public void onPageFinished(WebView view, String url) { // 加载完成后调用 JavaScript 函数初始化 ECharts 图表 view.loadUrl("javascript:echartsInit()"); } }); // 加载 ECharts JavaScript 库文件 webView.loadUrl("file:///android_asset/echarts.min.js"); // 加载包含 ECharts 初始化代码的 HTML 文件 webView.loadUrl("file:///android_asset/echarts.html"); ``` 请注意,在上面的代码示例中,我们将 ECharts 初始化代码嵌入到名为 echarts.html 的 HTML 文件中,并在 WebView 控件中加载该文件。这个 HTML 文件应该类似于以下内容: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ECharts Demo</title> <script src="echarts.min.js"></script> </head> <body> <div id="chart" style="width: 100%; height: 100%;"></div> <script type="text/javascript"> function echartsInit() { // 创建 ECharts 实例 var myChart = echarts.init(document.getElementById('chart')); // 在这里配置 ECharts 图表 myChart.setOption({ title: { text: '折线图示例' }, tooltip: {}, xAxis: { data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'] }, yAxis: {}, series: [{ name: '销量', type: 'line', data: [5, 20, 36, 10, 10, 20, 5] }] }); } </script> </body> </html> ``` 请注意,上面的 HTML 文件中包含一个名为 echarts.min.js 的 JavaScript 文件,这是我们在 Android 项目的 assets 目录中放置的 ECharts JavaScript 库文件。在 echartsInit() 函数中,我们使用 ECharts API 配置了一个折线图,包括标题、数据、轴和系列。通过更改数据和样式选项,您可以自定义您自己的 ECharts 折线图。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值