WebView之自定义浏览器(1)
这个小Demo主要是用来复习webview 的一些基本的用法。
一个浏览器基本功能
(1)输入地址 (2)确定 前进网站 (3)有扩大缩小网页 功能
点击 菜单按钮 有三个前进 刷新 后退
在加载的时候会出现提示框让用户等待
界面:
package com.example.WebviewDemo; import android.app.Activity; import android.app.ActionBar; import android.app.Fragment; import android.app.ProgressDialog; import android.graphics.Bitmap; import android.os.Bundle; import android.text.TextUtils; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.EditText; import android.widget.ProgressBar; import android.widget.Toast; import android.os.Build; public class MainActivity extends Activity { private EditText editText; private WebView webView; private Button button; private ProgressDialog bar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //全屏没有标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); bar = new ProgressDialog(this); bar.setMessage("服务器有点走神"); editText = (EditText) findViewById(R.id.editText1); webView = (WebView) findViewById(R.id.webview); button = (Button) findViewById(R.id.button1); //得到webview的设置管理 WebSettings settings = webView.getSettings(); //设置可以缩放 settings.setSupportZoom(true); //设置可以控制缩放 settings.setBuiltInZoomControls(true); webView.setWebViewClient(new WebViewClient() { //在网页发生改变的时候 调用此方法 @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { bar.show(); super.onPageStarted(view, url, favicon); } //在网页停止改变的时候 调用 @Override public void onPageFinished(WebView view, String url) { bar.dismiss(); super.onPageFinished(view, url); } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) { webView.goBack(); return true; } return super.onKeyDown(keyCode, event); } public void btn(View view) { String str = editText.getText().toString().trim(); if (TextUtils.isEmpty(str)) { str = "http://www.baidu.com/"; } webView.loadUrl(str); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.addSubMenu(0, 0, 0, "刷新"); menu.addSubMenu(0, 0, 1, "后退"); menu.addSubMenu(0, 0, 2, "前进"); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getOrder()) { case 0: webView.reload(); break; case 1: if (webView.canGoBack()) { webView.goBack(); } else { Toast.makeText(this, "在点击即将推出", 0).show(); } break; case 2: if (webView.canGoForward()) { webView.goForward(); } else { Toast.makeText(this, "在点击即将飞出太空", 0).show(); } break; } return super.onOptionsItemSelected(item); } }