简易Android浏览器的开发
- 格式:doc
- 大小:522.64 KB
- 文档页数:8
Android开发简易浏览器
1. 搭建Android开发环境
请详见:Android开发环境搭建.doc
2.创建工程
选择File->New->Project->Android Project 会出现如下界面:
输入工程名,点击Next进入如下界面
选择Target即用于编译工程的SDK 版本。点击Next
Application Name是显示在程序上的标题。
Package Name是包的名称。
Minimum SDK该工程支持的SDK的最低版本。
点击Finish完成创建工程。
3.界面布局
此浏览器的界面布局非常简单,包括:一个文本框EditText,一个按钮Button
和一个用来显示网页的面板WebView.如图所示:
其XML布局管理器程序清单为:
这里采用线性布局,用LinearLayout类来表示。其中
android:id:该属性指定了该控件的唯一标示符,在Java程序中可以通过
finfViewById(“id”)来获取指定的Android界面组件。
android:layout_width:指定该界面组件的宽度。如果该属性值为
fill_parent,则说明该组件与其父容器就有相同的宽度;如果该属性值为
wrap_content,则表明该组件的宽度取决于它的内容。当然,也可以自己设
置具体属性值。
android:layout_heigth:指定该界面组件的高度。属性值同样可以为
fill_parent和wrap_content。
android:text:设置组件上显示的名字。
android:orientation:设置布局管理器内组件的排列方式,可以设置为
horizontal(水平排列),vertical(垂直排列)之一。
定义的EditText和Button采用水平的线性布局方式,然后,EditText和
Button作为一个整体和WebView之间才用垂直布局的方式。
2.浏览器的实现
需要加载的包有:
Webkit是一个开源的浏览器引擎。在Android系统环境下自带了Webkit核心
库(动态链接库),这里通过头文件调用SDK,就可以使用系统的核心库了。
我们已经创建了一个MiniBrowser类继承Activity类,来显示我们的浏览器
操作界面。在MiniBrowser类中我们要实现onCreat(Bundle savedInstanceState)
方法,该方法将会在Activity创建是被回调,该方法调用Activity的
setContentView(View view)来显示要展示的view。为了管理应用程序界面中的
各组件,调用Activity的findViewById(int id)方法来获取程序界面中的组件。
程序代码如下:
SetContentView(R.layout.main)设置该Activity使用main.xml文件定义的
界面布局作为用户界面。下面分别获取界面中的EditText,Button,WebView三个
组件。
然后,对WebView进行一些设置。如:
设置可以使用Javascript
设置支持缩放
设置滚动条样式
设置触摸焦点
如果不设置点击网页文本输入时不能弹出软键盘及
不能响应其他的一些事件。
设置初始页面
设置浏览网页时的事件处理类
接下来定义进入网页的Button按钮的事件监听处理类:
这里首先获取文本框中的url字符串,如果字符串中没有“http://”, 那么在
其前面追加“http://”,然后加载此url。
至此,在文本框中输入一个网址,然后点击“GO”按钮就可以显示出相应的
网页了。但是,在打开的网页中还不能响应响应的点击或下载事件。其实WebView
只负责做一些解析,渲染工作,WebViewClient会帮助WebView来处理各种通知和
请求事件。
接下来要定义一个myWebViewClient类继承WebViewClient来进行事件处理。
如果页面中有链接,如果希望点击链接继续在当前Browser中响应,而
不是新开Android系统中的Browser来响应该链接,那么必须重写
WebViewClient中的shouldOverrideUrlLoading(WebView view,String
url)方法。
表示在当前Browser中响应链接。
页面表单错误提交需要重新提交时调用onReceivedSslError()方法。
WebView加载的资源调用onLoadResource(WebView view,String url)。
页面开始后的时间处理(如下载等)调用onPageStarted(WebView
view,String url,Bitmap favicon)方法。
页面结束之后的处理调用onPageFinished(WebView view,String url)
方法。
如果用WebView查看了很多网页,我们希望点击系统的back键返回上一次浏
览的网页,而不是调用浏览器的finish()来推出浏览器。那么需要覆盖Activity
类的onKeyDown(int keyCoder,KeyEvent event)方法来调用WebView的goBack()
方法。如图:
小结:通过以上的过程,你将可以一步一步的实现从零到搭建Android开发环境
再到开发一款最简单的Android浏览器。希望通过此过程能够帮助你熟悉Android
开发环境以及能够开发一些简单的应用程序。