Android使用echarts框架的K線圖


歡迎大家觀看我在CSDN學院錄制的課程:http://edu.csdn.net/lecturer/944

百度echarts框架還是比較強大的,之前有嘗試使用它,但畢竟主要使用於web網頁端,效果不是很好,所以最終還是取消使用echarts

但之前在使用的過程中遇到些問題,雖然解決很簡單,但也花了我不少時間,所以在這里記錄之前如何使用及如何解決其中遇到的問題

1、在echarts官網下載demo

2、如果js代碼沒有很好的給一個函數入口,則自己提取封裝

    (1)原本已經提取封裝好的函數保持不變

    (2)js最開始執行的地方提取出來封裝為一個函數,將其中的圖形的數據變量作為函數的參數

    (3)將html代碼放到Android工程的assets目錄下

    (4)Android的布局這里就不多寫了,直接加一個webview就行

    (5)在Java代碼中調用js,代碼如下

      

//設置編碼
        mWebView.getSettings().setDefaultTextEncodingName("utf-8");
        //支持js
        mWebView.getSettings().setJavaScriptEnabled(true);

        //設置背景顏色 透明
        mWebView.setBackgroundColor(Color.argb(0, 0, 0, 0));

        //載入js
//        mWebView.loadUrl("file:///android_asset/echarts-kline.html");
        mWebView.loadUrl("file:///android_asset/candlestick33.html");

    mWebView.loadUrl("javascript:jsFunction('" + jsParam+ "')");

 按照以往我們按照上面的形式調用js是沒問題的,但我這里圖形就是無法獲取到數據,所以也圖形也沒有什么內容

想了好久,用很多方法嘗試,數據是傳過去了的,但為什么不顯示呢。

自己也猜測:是不是頁面圖形框架還沒加載好就已經執行了這段代碼,等真正圖形框架加載完需要傳數據的時候,那段傳數據的代碼不再調用了,但Android端如何判斷頁面加載好呢,這也要看網速的吧

之后在一個群里一個熱心好友跟我猜到一起了,但它知道如果是這個原因,可以試試什么方法,方法如下:

WebView可以實現一個onPageFinished的方法,顧名思義,應該就是當頁面加載完后,我們再去調用js函數,這里只需要把調用js的那段代碼放到如下代碼中

mWebView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                mWebView.loadUrl("javascript:jsFunction('" + jsParam+ "')");
                super.onPageFinished(view, url);
            }

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
    

本人文筆有限,有寫的不好的地方還請包涵。

本人聯系方式:

                更多精彩分享,可關注我的微信公眾號:

                                    

      微信打賞我請掃描下面的二維碼:

                               

                 微信號:WeixinJungle

              

                 郵箱:oneou6688@163.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM