WebView的简单使用

实际开发中,有时候需要用WebView来加载html,首先要在src/main目录下创建assets文件夹,里面放html文件,然后用WebView来加载:
web_view.loadUrl("file:///android_asset/Demo.html");

当然,WebView还可以直接加载一个url:

 web_view.loadUrl(url);

完整代码:

package com.example.lenovo.webview;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import butterknife.Bind;
import butterknife.ButterKnife;

public class MainActivity extends Activity {
    @Bind(R.id.web_view)
    WebView web_view;
    private String url = "http://www.baidu.com";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        initView();
// web_view.loadUrl(url);
        web_view.loadUrl("file:///android_asset/Demo.html");
        web_view.setWebViewClient(new WebViewClient());
    }

    private void initView() {
        WebSettings setting = web_view.getSettings();
        setting.setJavaScriptEnabled(true);//支持Js
        setting.setCacheMode(WebSettings.LOAD_DEFAULT);//缓存模式
        //是否支持画面缩放,默认不支持
        setting.setBuiltInZoomControls(true);
        setting.setSupportZoom(true);
        //是否显示缩放图标,默认显示
        setting.setDisplayZoomControls(false);
        //设置网页内容自适应屏幕大小
        setting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
        setting.setUseWideViewPort(true);
        setting.setLoadWithOverviewMode(true);
    }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (web_view.canGoBack()) {
                web_view.goBack();
                return true;
            } else {
                finish();
            }
        }
        return super.onKeyDown(keyCode, event);
    }
}

如需加载进度条的话,添加如下一个方法:

webView.setWebChromeClient(new WebChromeClient(){
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                if (newProgress != 100) {
                    progressBar.setProgress(newProgress);
                } else {
                    progressBar.setVisibility(View.GONE);
                }
            }
        });

xml中布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.administrator.demo2.MainActivity">
    <TextView  android:layout_width="match_parent" android:layout_height="44dp" android:text="详情" android:gravity="center" android:background="#7B3A94" android:textColor="@android:color/white"/>
    <ProgressBar  android:id="@+id/progressBar" android:layout_width="match_parent" android:layout_height="2dp" style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"/>
    <WebView  android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent"/>
</LinearLayout>

你可能感兴趣的:(WebView的简单使用)