安卓开发 WebView基础

一个非常基础的Webview实现


主页面:

public class MainActivity extends AppCompatActivity {

    @Bind(R.id.webview)
    WebView webview;
    @Bind(R.id.web_progressBar)
    ProgressBar webProgressBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);

        webview.loadUrl("http://www.baidu.com");

        WebSettings webSettings = webview.getSettings();
        webSettings.setLoadWithOverviewMode(true);
        webSettings.setJavaScriptEnabled(true);
        webSettings.setAppCacheEnabled(true);
        webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
        webSettings.setSupportZoom(true);

        webview.setWebChromeClient(new WebViewLoadingStart());
        webview.setWebViewClient(new WebViewLoadingEnd());
    }

    /**
     * 加载时
     */
    private class WebViewLoadingStart extends WebChromeClient {
        @Override
        public void onProgressChanged(android.webkit.WebView view, int newProgress) {
            webProgressBar.setVisibility(View.VISIBLE);
            webProgressBar.setProgress(newProgress);
        }
    }

    /**
     * 加载结束
     */
    private class WebViewLoadingEnd extends WebViewClient {
        @Override
        public void onPageFinished(WebView view, String url) {
            webProgressBar.setVisibility(View.GONE);
        }
    }
}

xml就是一个进度条ProgressBar+Webview

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ProgressBar
        android:id="@+id/web_progressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="1.5dp"
        android:layout_gravity="center"
        android:paddingTop="0dp"
        android:progressDrawable="@drawable/progressbar"
        android:visibility="visible" />

    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

访问的网址是百度~   实现截图:

安卓开发 WebView基础


点击页面item:

安卓开发 WebView基础


Demo项目地址:https://github.com/Small-code-monkey/WebDemo