经典WebView加载HTML布局示例

来源:互联网 发布:java传递参数基本类型 编辑:程序博客网 时间:2024/06/03 20:00

MainActivity

public class ExpandableListViewActivity extends BaseFragmentActivity<Calcdata,L>implements View.OnClickListener {    private WebView calc;    private String Url ="88888888888888888";    private Dialog  mLoadingDialog;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_expandable_listview);        init();    }    private void init() {        mLoadingDialog = VandaAlert.createLoadingDialog(this, "");        calc=(WebView)findViewById(R.id.calc);        calc.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);        calc.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);        calc.setWebViewClient(new WebViewClientEmb());        calc.setWebChromeClient(new WebChromeClient());        //支持javascript        calc.getSettings().setJavaScriptEnabled(true);        // 设置可以支持缩放        calc.getSettings().setSupportZoom(true);        // 设置出现缩放工具        calc.getSettings().setBuiltInZoomControls(true);        //扩大比例的缩放        calc.getSettings().setUseWideViewPort(true);        //自适应屏幕        calc.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);        calc.getSettings().setLoadWithOverviewMode(true);        calc.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);        //listview,webview中滚动拖动到顶部或者底部时的阴影        //使用把图片加载放在最后来加载渲染//        calc.getSettings().setBlockNetworkImage(true);        //取消滚动条白边效果        calc.setOverScrollMode(View.OVER_SCROLL_NEVER);        calc.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);        System.out.println("this is url======"+Url);        calc.loadUrl(Url);    }    public  class WebViewClientEmb extends WebViewClient {        // 在WebView中而不是系统默认浏览器中显示页面        @Override        public boolean shouldOverrideUrlLoading(WebView view, String url) {            view.loadUrl(url);            return true;        }        // 页面载入前调用        @Override        public void onPageStarted(WebView view, String url, Bitmap favicon) {            super.onPageStarted(view, url, favicon);            mLoadingDialog.show();           mLoadingDialog.setCancelable(false);        }        // 页面载入完成后调用        @Override        public void onPageFinished(WebView webView, String url) {            // //webview图片自适应,android4.4之前都有用,4.4之后google优化后,无法支持,需要自己手动缩放            webView.loadUrl("javascript:(function(){"                    + "var objs = document.getElementsByTagName(\"img\"); "                    + "for(var i=0;i<objs.length;i++) {" + "if("                    + Build.VERSION.SDK_INT + ">=19){"                    + "DrawImage(objs[i],window.innerWidth,300);" + "}" + "}"                    + "})()");            super.onPageFinished(webView, url);           mLoadingDialog.dismiss();        }    }    @Override    protected void processData(Calcdata response) {        super.processData(response);        if(response != null )        {            Url = response.link;            calc.loadUrl(Url);            System.out.println("this is url======"+Url);        }    }    @Override    protected String getRequestUrl() {        return "http://42.102.156.27:11888/mobile_server_is/calc.html";    }    @Override    protected Class<Calcdata> getResponseDataClass() {        return Calcdata.class;    }    @Override    protected Map<String, String> getParamMap() {        return null;    }    @Override    public void onClick(View v) {    }    //.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);}

MainActivity.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="io.dcloud.H5B79C397.testActivity.ExpandableListViewActivity"> <WebView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/calc"></WebView></LinearLayout>

然后就可以自由加载喽

原创粉丝点击