Android提供了WebView组件,表面上来看,这个组件与普通ImageView差不多,但实际上,这个组件的功能要强大得多,WebView组件本身就是一个浏览器实现,它的内核基于开源WebKit引擎。如果我们对WebView进行一些美化、包装,可以非常轻松地开发出自己的浏览器。

WebView的用法与普通ImageView组件的用法基本相似,它提供了大量方法来执行浏览器操作:

1、void  goBack():后退。

2、void  goForward():前进。

3、void  loadUrl(String  url):加载指定URL对应的网页。

4、boolean  zoomIn():方法网页。

5、boolean  zoomOut():缩小网页。

下面的程序将给予WebView来开发一个简单的浏览器:

该程序的界面中包含两个组件:一个文本框用于接收用户输入想访问的URL;一个WebView用于加载并显示该URL对应的页面。该程序的界面布局代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical"
  tools:context=".MiniBrowser" >

  <EditText
    android:id="@+id/url"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="请输入想访问的URL"
    />
  <!-- 显示页面的WebView组件 -->
  <WebView
    android:id="@+id/show"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    />
</LinearLayout>

以下程序则主要通过WebView的loadUrl(String  url)来加载、显示指定URL对应的页面。

import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.webkit.WebView;
import android.widget.EditText;

public class MiniBrowser extends Activity {
  EditText url;
  WebView show;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mini_browser);
    //获取页面中文本框、WebView组件
    url = (EditText) findViewById(R.id.url);
    show = (WebView) findViewById(R.id.show);
  }
  @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_SEARCH){
      String urlStr = url.getText().toString();
      //加载并显示urlStr对应的网页
      show.loadUrl(urlStr);
      return true;
    }
    return false;
  }

Android系统自带的·浏览器其实也是基于开源的WebKit引擎实现的。

posted on 2016-07-05 09:37  奋斗青年一族  阅读(475)  评论(0编辑  收藏  举报