Jack_King007的专栏

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);
	}
}