您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Android大作业
西安电子科技大学Android选修大作业Mini浏览器开发报告姓名:李阳学号:13010110004班级:1301011班1.简介通过本次android选修课的学习,我已经对android开发的基本框架有所了解,于是尝试着采用webview控件开发了一个小型的android浏览器---mini浏览器,能实现基本的网页浏览,网页视频,图片等资源的查阅功能其界面截图如下:2.开发过程2.1编写布局文件Android布局模式有五种,分别是:LinearLayout(线性布局),FrameLayout(框架布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。本应用可采用很多种方法实现布局,经过思考,决定采用LinearLayout(线性布局)和TableLayout(表格布局)嵌套使用,布局代码如下:为了使标题布局具有可移植性可重新写一个tltle的布局文件,然后调用此布局title.xml:?xmlversion=1.0encoding=utf-8?LinearLayoutxmlns:android=:layout_width=fill_parentandroid:layout_height=wrap_contentandroid:background=@drawable/titleEditTextandroid:id=@+id/TextBoxandroid:layout_width=100dpandroid:layout_height=wrap_contentandroid:layout_weight=6android:hint=键入网址android:inputType=textUri/Buttonandroid:id=@+id/SearchButtonandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:text=转到android:layout_weight=1//LinearLayoutmain.xml:?xmlversion=1.0encoding=utf-8?TableLayoutxmlns:android=:layout_width=fill_parentandroid:layout_height=fill_parentandroid:background=#fffincludelayout=@layout/title/ProgressBarstyle=?android:attr/progressBarStyleHorizontalandroid:id=@+id/myProgressBarandroid:layout_width=fill_parentandroid:layout_height=5dpandroid:layout_weight=0.2android:foreground=#00fandroid:background=#fff/WebViewandroid:id=@+id/Webandroid:layout_width=fill_parentandroid:layout_height=fill_parentandroid:layout_weight=9/TableRowandroid:layout_width=fill_parentandroid:layout_height=wrap_contentandroid:background=@drawable/titleandroid:layout_weight=1Buttonandroid:id=@+id/BackButtonandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_weight=1android:text=后退/Buttonandroid:id=@+id/HomeButtonandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_weight=1android:text=首页/Buttonandroid:id=@+id/ForwardButtonandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_weight=1android:text=前进/Buttonandroid:id=@+id/ReButtonandroid:layout_width=wrap_contentandroid:layout_height=wrap_contentandroid:layout_weight=1android:text=刷新//TableRow/TableLayout2.2图片资源的选取为了使程序界面看起来和谐,经过多次测试,自行用Photoshop做了背景图片和应用标签图片,然后在Java代码中调用它们。2.3功能的实现2.3.1按钮功能的实现在布局文件中已经配置好了控件的位置,此时需要为每个控件绑定特定的功能,如下为每个按钮绑定监听器:后退键:BackButton.setOnClickListener(newOnClickListener(){//后退键publicvoidonClick(Viewv){//TODOAuto-generatedmethodstubif(Web.canGoBack()==true){Web.goBack();}else{Toast.makeText(MyBrowerhActivity.this,不能再后退了,亲!,Toast.LENGTH_SHORT).show();}}});前进键:ForwardButton.setOnClickListener(newOnClickListener(){//前进键publicvoidonClick(Viewv){//TODOAuto-generatedmethodstubif(Web.canGoForward()==true){Web.goForward();}else{Toast.makeText(MyBrowerhActivity.this,不能再前进了,亲!,Toast.LENGTH_SHORT).show();}}});转到键:SearchButton.setOnClickListener(newOnClickListener(){//转到键publicvoidonClick(Viewv){//TODOAuto-generatedmethodstubOpenBrowser();}});首页键:HomeButton.setOnClickListener(newOnClickListener(){//首页键publicvoidonClick(Viewv){//TODOAuto-generatedmethodstubif(Web.canGoBack()==true){while(Web.canGoBack()==true){Web.goBack();}}else{Toast.makeText(MyBrowerhActivity.this,已经是首页了,亲!,Toast.LENGTH_SHORT).show();}}});刷新键:ReButton.setOnClickListener(newOnClickListener(){//刷新键publicvoidonClick(Viewv){//TODOAuto-generatedmethodstubWeb.reload();}});由于使用webview加载网页的方法多次被调用,于是重写一个OpenBrowser()的方法以便调用:privatevoidOpenBrowser(){//打开文本框中的链接Stringurl=http:+TextBox.getText().toString().trim();if(TextUtils.isEmpty(TextBox.getText().toString().trim())){Toast.makeText(MyBrowerhActivity.this,地址为空,无法加载哦,亲!,Toast.LENGTH_SHORT).show();}else{Web.loadUrl(url);Toast.makeText(this,加载中,请稍后哦,亲!+\n+url,Toast.LENGTH_LONG).show();}}2.3.2退出方式实现应用程序的退出方式有很多种,本应用采用弹出对话框的形式,在首页按返回键或者按下menu中的退出按钮即可弹出一个对话框,可先编写Dialog()方法弹出对话框:privatevoidDialog(){//弹出退出的对话框AlertDialogalert=newAlertDialog.Builder(MyBrowerhActivity.this).create();alert.setTitle(退出?);alert.setMessage(真的要退出这个浏览器吗,亲?);alert.setButton(DialogInterface.BUTTON_NEGATIVE,取消,newDialogInterface.OnClickListener(){publicvoidonClick(DialogInterfacedialog,intwhich){//TODOAuto-generatedmethodstub}});alert.setButton(DialogInterface.BUTTON_POSITIVE,确定,newDialogInterface.OnClickListener(){publicvoidonClick(DialogInterfacedialog,intwhich){//TODOAuto-generatedmethodstubfinish();}});alert.show();}重写onKeyDown()方法实现返回键的退出功能:publicbooleanonKeyDown(intkeyCode,KeyEventevent){//重写返回键//TODOAuto-generatedmethodstubif(keyCode==KeyEvent.KEYCODE_BACK){if(Web.canGoBack()==true){Web.goBack();returntrue;}else{Dialog();returntrue;}}returnsuper.onKeyDown(keyCode,event);}接下来可为menu键添加选项并实现其功能:publicbooleanonCreateOptionsMenu(Menumenu){//添加menu//TODOAuto-generatedmethodstubmenu.add(0,3,3,退出);menu.add(0,2,2,关于);returnsuper.onCreateOptionsMenu(menu);}@OverridepublicbooleanonOptionsItemSelected(MenuItemitem){//实现menu功能//TODOAuto-generatedmethodstubif(item.getItemId()==3){Dialog();}if(item.getItemId()==2){Intentintent=newIntent()
本文标题:Android大作业
链接地址:https://www.777doc.com/doc-5057752 .html