package com.example.webview;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebSettings.ZoomDensity;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
import android.widget.ProgressBar;
public class MainActivity extends Activity {
private EditText et_url;
private WebView webView;
private ProgressBar pb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_url = (EditText) findViewById(R.id.et_url);
webView = (WebView) findViewById(R.id.webView);
pb = (ProgressBar) findViewById(R.id.pb);
// 给webView进行一些基本的设置
initSettting();
}
@SuppressLint("NewApi")
private void initSettting() {
WebSettings settings = webView.getSettings();
// load_default 只要有缓存,就用缓存
// load_cache_else_network 当缓存失效时,加载网络
// LOAD_DEFAULT, LOAD_CACHE_ELSE_NETWORK, LOAD_NO_CACHE or
// LOAD_CACHE_ONLY. The default value is LOAD_DEFAULT.
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
// 设置是否展示一个缩放的控制器
settings.setBuiltInZoomControls(true);
// 最高缩放的级别
settings.setDefaultZoom(ZoomDensity.FAR);
// 设置默认的字体大小
settings.setDefaultFontSize(10);
// 设置只在当前页面展示
webView.setWebViewClient(new WebViewClient());
// 设置有关网页加载进度的客户端
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
// 让进度条显示
pb.setVisibility(View.VISIBLE);
pb.setProgress(newProgress);
// 当进度==100时,隐藏进度条
if (newProgress == 100) {
pb.setVisibility(View.GONE);
}
}
});
}
public void load(View v) {
String url = et_url.getText().toString().trim();
webView.loadUrl(url);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 监听返回键
if (keyCode == KeyEvent.KEYCODE_BACK) {
// 如果webView可以后退
if (webView.canGoBack()) {
webView.goBack();
} else {
finish();
}
}
return true;
}
}
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebSettings.ZoomDensity;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
import android.widget.ProgressBar;
public class MainActivity extends Activity {
private EditText et_url;
private WebView webView;
private ProgressBar pb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_url = (EditText) findViewById(R.id.et_url);
webView = (WebView) findViewById(R.id.webView);
pb = (ProgressBar) findViewById(R.id.pb);
// 给webView进行一些基本的设置
initSettting();
}
@SuppressLint("NewApi")
private void initSettting() {
WebSettings settings = webView.getSettings();
// load_default 只要有缓存,就用缓存
// load_cache_else_network 当缓存失效时,加载网络
// LOAD_DEFAULT, LOAD_CACHE_ELSE_NETWORK, LOAD_NO_CACHE or
// LOAD_CACHE_ONLY. The default value is LOAD_DEFAULT.
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
// 设置是否展示一个缩放的控制器
settings.setBuiltInZoomControls(true);
// 最高缩放的级别
settings.setDefaultZoom(ZoomDensity.FAR);
// 设置默认的字体大小
settings.setDefaultFontSize(10);
// 设置只在当前页面展示
webView.setWebViewClient(new WebViewClient());
// 设置有关网页加载进度的客户端
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
// 让进度条显示
pb.setVisibility(View.VISIBLE);
pb.setProgress(newProgress);
// 当进度==100时,隐藏进度条
if (newProgress == 100) {
pb.setVisibility(View.GONE);
}
}
});
}
public void load(View v) {
String url = et_url.getText().toString().trim();
webView.loadUrl(url);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 监听返回键
if (keyCode == KeyEvent.KEYCODE_BACK) {
// 如果webView可以后退
if (webView.canGoBack()) {
webView.goBack();
} else {
finish();
}
}
return true;
}
}