文章出處
文章列表
android提供achartengine api 只能做簡單的,如果是復雜的圖表,個人的想法結合highcharts來完成;減小工作量,官方提供的例子也非常豐富。
通過android webview來請求數據;
public class ZTMainActivity extends Activity {
WebView browser; ProgressDialog pd; Handler handler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ztmain); init();// 執行初始化函數 String urls = "file:///android_asset/ztpad/jsp/subway/including/subwayflow_chart.html"; loadUrl(browser, urls); } /** * 初始化數據 */ public void init() { pd = new ProgressDialog(ZTMainActivity.this); pd.setProgressStyle(ProgressDialog.STYLE_SPINNER); pd.setMessage("正在請求數據,請稍候..."); handler = new Handler() { public void handleMessage(Message msg) {// 定義一個Handler,用于處理下載線程與UI間通訊 if (!Thread.currentThread().isInterrupted()) { switch (msg.what) { case 0: pd.show();// 顯示進度對話框 break; case 1: pd.hide();// 隱藏進度對話框,不可使用dismiss()、cancel(),否則再次調用show()時,顯示的對話框小圓圈不會動。 break; } } super.handleMessage(msg); } }; browser = (WebView) findViewById(R.id.wv); browser.getSettings().setJavaScriptEnabled(true);// 可用JS browser.getSettings().setSupportZoom(true); browser.getSettings().setBuiltInZoomControls(false); browser.getSettings().setUseWideViewPort(false); browser.getSettings().setLoadWithOverviewMode(false); browser.getSettings().setAppCacheEnabled(true); browser.getSettings().setCacheMode(browser.getSettings().LOAD_NO_CACHE); browser.getSettings().setDatabaseEnabled(true); browser.getSettings().setDomStorageEnabled(true); browser.getSettings().setJavaScriptEnabled(true); browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); browser.setScrollBarStyle(0);// 滾動條風格,為0就是不給滾動條留空間,滾動條覆蓋在網頁上 browser.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(final WebView view, final String url) { loadUrl(view, url);// 載入網頁 return true; }// 重寫點擊動作,用webview載入 }); browser.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) {// 載入進度改變而觸發 if (progress == 100) { handler.sendEmptyMessage(1);// 如果全部載入,隱藏進度對話框 } super.onProgressChanged(view, progress); } }); } public void loadUrl(final WebView view, final String url) { new Thread() { public void run() { try{ handler.sendEmptyMessage(0); view.loadUrl(url);// 載入網頁 }catch(Exception e){ handler.sendEmptyMessage(1); } } }.start(); }
}
效果如圖:
文章列表
全站熱搜