![](http://hi.csdn.net/attachment/201111/15/0_13213662163Jg1.gif)
大家都知道手机上的浏览器是没有电脑上那么多功能的,所以如何利用小空间来实现大功能是非常重要的。Android提供了一个叫WebView的WebKit浏览引擎的包装,我们可以利用它来浏览器的强大功能。接下来将讲述怎样把一个浏览器嵌入到activity中。
1. 建立一个工程,包含下列参数:
Project name: BrowserView
Build Target: Android 2.2
Application name: BrowserView
Package name: org.example.browserview
Create Activity: BrowserView
Min SDK Version: 8
2. 更改布局文件main.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/url_field"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:lines="1"
android:inputType="textUri"
android:imeOptions="actionGo"/>
<Button
android:id="@+id/go_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/go_button"/>
</LinearLayout>
<WebView
android:id="@+id/web_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1.0"/>
</LinearLayout>
在这个布局文件中我们用到了两个LinearLayout来控制显示正确的位置,外面的LinearLayout把屏幕分成上下两个,一个显示text area和button,而另一个用来显示WebView。里面的LinearLayout用来控制text area显示在左边而button显示在右边。
3. 编写BrowserView.java文件:
package com.zy.browserview;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.EditText;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
public class BrowserView extends Activity {
private EditText urlText;
private Button goButton;
private WebView webView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
urlText = (EditText) findViewById(R.id.url_field);
goButton = (Button) findViewById(R.id.go_button);
webView = (WebView) findViewById(R.id.web_view);
goButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
openBrowser();
}
});
urlText.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_ENTER){
openBrowser();
return true;
}
return false;
}
});
}
private void openBrowser(){
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://"+urlText.getText().toString());
}
}
其中的loadUrl()方法用来引起浏览器引擎加载和显示输入的网页,会直接显示出来你要显示的网页,不过需要花费一定时间。
4. 编写string的资源文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, BrowserView!</string>
<string name="app_name">BrowserView</string>
<string name="go_button">GO</string>
</resources>
5. 此外,我们需要在AndroidManifest.xml文件加入:
<uses-permission android:name="android.permission.INTERNET"/>
如果忘记的话,Android将不能使你的application进入到网络上,而且会得到”Web page not available”这样的错误。