android是对移动式互联网的产物,必然离不开互联网,今天主要介绍下webview的用法,之前项目中也用到了这种技术。废话少说。
1.建立工程文件WebViewDemo。
2.在布局文件,只有一个webview控件。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<WebView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/wbView"/>
</LinearLayout>
3.核心代码如下。
package com.webview.cn;
import com.droidstouch.webview.R;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class WebViewActivity extends Activity {
private WebView wbView;
private String url="http://mp3.baidu.com/";
private Handler handler;
private ProgressDialog pd;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
loadUrl(wbView, url);
handler = new Handler()
{
public void handleMessage(android.os.Message msg)
{
switch(msg.what)
{
case 0:
pd.show();
break;
case 1:
pd.hide();//隐藏进度对话框,不可使用dismiss()、cancel(),否则再次调用show()时,显示的对话框小圆圈不会动�?
break;
}
};
};
}
private void init()
{
wbView = (WebView) this.findViewById(R.id.wbView);
//设置可用Javascript脚本
wbView.getSettings().setJavaScriptEnabled(true);
wbView.setScrollBarStyle(0);//滚动条风格,�?就是不给滚动条留空间,滚动条覆盖在网页上
wbView.setWebViewClient(new WebViewClient()
{
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
loadUrl(view, url);
return true;
}
});
wbView.setWebChromeClient(new WebChromeClient(){
public void onProgressChanged(WebView view, int newProgress)
{
if(newProgress == 100)// 全部加载完毕
{
handler.sendEmptyMessage(1);
}
super.onProgressChanged(view, newProgress);
}
});
pd = new ProgressDialog(this);
pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
pd.setMessage("正在载入");
}
private void loadUrl(final WebView view,final String url)
{
new Thread()
{
public void run() {
handler.sendEmptyMessage(0);
view.loadUrl(url);
};
}.start();
}
}
4.运行程序。