经典WebView加载HTML布局示例

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 + "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 getResponseDataClass() {
        return Calcdata.class;
    }
    @Override
    protected Map 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>

然后就可以自由加载喽

你可能感兴趣的:(app)