• 今日总结


    2021年3月11日:

    今天用echarts做了一个简单的折线图,代码如下:

    package com.example.shuju;

    import com.github.abel533.echarts.axis.CategoryAxis;
    import com.github.abel533.echarts.axis.ValueAxis;
    import com.github.abel533.echarts.code.Trigger;
    import com.github.abel533.echarts.json.GsonOption;
    import com.github.abel533.echarts.series.Line;

    public class EchartOptionUtil {
    public static GsonOption getLineChartOptions(Object[] xAxis, Object[] yAxis) {
    GsonOption option = new GsonOption();
    option.title("折线图");
    option.legend("销量");
    option.tooltip().trigger(Trigger.axis);

    ValueAxis valueAxis = new ValueAxis();
    option.yAxis(valueAxis);

    CategoryAxis categorxAxis = new CategoryAxis();
    categorxAxis.axisLine().onZero(false);
    categorxAxis.boundaryGap(true);
    categorxAxis.data(xAxis);
    option.xAxis(categorxAxis);

    Line line = new Line();
    line.smooth(false).name("销量").data(yAxis).itemStyle().normal().lineStyle().shadowColor("rgba(0,0,0,0.4)");
    option.series(line);
    return option;
    }
    }




    package com.example.shuju;

    import android.os.Bundle;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;

    import androidx.appcompat.app.AppCompatActivity;

    import com.example.myapplication.R;
    public class echarts extends AppCompatActivity {
    private EchartView lineChart;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.shuju);
    lineChart = findViewById(R.id.lineChart);
    lineChart.setWebViewClient(new WebViewClient(){
    @Override
    public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
    //最好在h5页面加载完毕后再加载数据,防止html的标签还未加载完成,不能正常显示
    refreshLineChart();
    }
    });
    }
    private void refreshLineChart(){
    Object[] x = new Object[]{
    "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"
    };
    Object[] y = new Object[]{
    820, 932, 901, 934, 1290, 1330, 1320
    };
    lineChart.refreshEchartsWithOption(EchartOptionUtil.getLineChartOptions(x, y));
    }

    }



    package com.example.shuju;

    import android.content.Context;
    import android.util.AttributeSet;
    import android.webkit.WebSettings;
    import android.webkit.WebView;

    import com.github.abel533.echarts.json.GsonOption;

    public class EchartView extends WebView {
    private static final String TAG = EchartView.class.getSimpleName();

    public EchartView(Context context) {
    this(context, null);
    }

    public EchartView(Context context, AttributeSet attrs) {
    this(context, attrs, 0);
    }

    public EchartView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    init();
    }

    private void init() {
    WebSettings webSettings = getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
    webSettings.setSupportZoom(false);
    webSettings.setDisplayZoomControls(false);
    loadUrl("file:///android_asset/echarts.html");
    }

    /**刷新图表
    * java调用js的loadEcharts方法刷新echart
    * 不能在第一时间就用此方法来显示图表,因为第一时间html的标签还未加载完成,不能获取到标签值
    * @param option
    */
    public void refreshEchartsWithOption(GsonOption option) {
    if (option == null) {
    return;
    }
    String optionString = option.toString();
    String call = "javascript:loadEcharts('" + optionString + "')";
    loadUrl(call);
    }
    }
  • 相关阅读:
    avalon随笔
    ms-attr-data-real-gold="{{page_data[0].gold}}" 属性付真
    jQuery 快捷操作
    jQuery 属性操作
    jQuery 表单域选中选择器
    jQuery 层次选择器
    jQuery 基本选择器
    jQuery 基本使用
    jQuery 引入多个库文件冲突
    BOM window对象方法
  • 原文地址:https://www.cnblogs.com/yitiaokuailedexiaojingyu/p/14520661.html
Copyright © 2020-2023  润新知