




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计说明书基于ANDROID的手机微博客户端的设计与实现题目用一号黑体字,一行排不下可排两行,居中。学生姓名学号学院系名专业指导教师2015年5月信息商务学院电子与计算机科学技术系计算机科学与技术基于ANDROID的手机微博客户端的设计与实现摘要随着第三代通信技术3G的推广,无线带宽和传输速度都得到了大幅度提升,为智能手机终端添加更多内容丰富的应用功能提供了良好的平台。本系统是基于谷歌公司新推出的一款LINUX平台的开源手机操作系统ANDROID系统,利用JAVA语言,ECLIPSE为开发工具,通过对平台的系统架构和应用程序进行学习,设计出一款基于ANDROID手机微博的设计与实现。本系统包括存储,删除,ANDROID修改,满足了用户对录音与传播的需求。此录音与传播的设计遵循标准的开发流程,首先进行需求分析,然后确定录音与传播的功能,再编写程序的代码,调试程序,运行程序,并对程序进行优化完善。本软件利用ANDROID提供的各种组件对界面进行设计,能够很好地支持用户体验。关键词ANDROID,微博客户端,微博API调用服务ANDIMPLEMENTATIONOFRECORDINGANDCOMMUNICATIONDESIGNBASEDONANDROIDABSTRACTWITHTHEPROMOTIONOFTHETHIRDGENERATIONOF3GCOMMUNICATIONTECHNOLOGY,WIRELESSBANDWIDTHANDTRANSMISSIONSPEEDCANBEIMPROVEDGREATLY,WHICHPROVIDESAGOODPLATFORMFORINTELLIGENTMOBILEPHONETERMINALTOADDAPPLICATIONFUNCTIONMORERICHCONTENTTHESYSTEMISOPENSOURCEMOBILEPHONEOPERATINGSYSTEMANDROIDGOOGLECORPORATION,ANEWSYSTEMBASEDONLINUXPLATFORM,USINGJAVALANGUAGE,ECLIPSEFORDEVELOPMENTTOOLS,LEARNINGTHROUGHTHESYSTEMARCHITECTUREANDTHEAPPLICATIONOFTHEPLATFORM,DESIGNAANDROIDBASEDONTHERECORDINGANDBROADCASTSYSTEMTHESYSTEMINCLUDESAMEMORY,DELETE,MODIFY,ANDROID,MEETINGTHENEEDOFTHERECORDINGANDDISSEMINATIONDESIGNOFTHERECORDINGANDDISSEMINATIONOFTHESTANDARDDEVELOPMENTPROCESS,CARRYONTHENEEDANALYSISFIRST,ANDTHENDETERMINETHERECORDINGANDCOMMUNICATIONFUNCTION,ANDTHENTHEPROGRAMCODE,DEBUG,RUNTHEPROGRAM,ANDTHEPROGRAMOPTIMIZETHEINTERFACEDESIGNOFTHEVARIOUSCOMPONENTSOFTHESOFTWAREPROVIDEDBYTHEUSEOFANDROID,CANBETTERSUPPORTTHEUSEREXPERIENCEKEYWORDSANDROID,MICROBLOGCLIENT,MICROBLOGAPICALLSSERVICE目录1绪论111引言112微博网站研究现状和发展趋势213本文的主要工作和各章内容安排22ANDROID的技术与理论421ANDROID的系统开发简介4211ANDROID技术简介4212关键应用程序6213应用程序框架7214函数库7215LINUX内核73平台与开发工具831开发平台介绍832开发工具ECLIPSE简介833开发语言与开发环境84微博开发客户端界面分析与设计941ANDROID手机界面的特点942ANDROID新浪微博客户端需求分析1243微博客户端用户界面的分析与设计13431系统登录界面13432个人用户主界面14433查看微博信息界面15434发表微博界面16435系统背景图片更换界面16436系统历史记录界面175系统各个界面的具体实现1851启动界面的实现1852登录界面的实现1853个人用户主界面的实现1854查看微博信息界面的实现1955发表微博界面的实现1956更换背景图片界面的实现206客户端界面测试2361系统测试的目标2362测试条件与测试流程2363测试用例与测试结果237总结24参考文献25致谢261绪论11引言随着经济社会的发展,手机越来越成为人们日常生活中不可或缺的必备品。而基于ANDROID系统的手机越来越多,而手机上的应用更是层出不穷。微博作为新兴的网络交流平台,越来越受到人们的欢迎。作为人们最频繁使用的通讯工具,手机微博客户端可以使人们将自己的所见所闻、所听所想很快的通过微博发布出去,与别人分享。大家可以再微博上展示自己,感受不断变化的世界。因此,本课题具有重要的研究意义。基于ANDROID手机微博客户端的开发,可以很快促进手机微博的发展,同时也有利于手机网络的发展和拓宽人们分享、获取信息的途径。其次,开发手机微博客户端可以与提供微博服务的互联网公司如新浪、腾讯、搜狐等进行合作,可以为公司谋求发展和为开发者带来一定的经济利益。因此,微博客户端的开发具有一定的社会和经济意义。随着2012年移动互联网时代的全面到来,手机操作系统越来越被我们每一个人所认识。各种操作系统的手机随处可见,在这些操作系统中。ANDROID越来越引起人们的关注和追捧。ANDROID是一种以LINUX为基础的开放源码操作系统,主要使用于便携设备。2005年由GOOGLE收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。到2012年2月份,ANDROID在智能移动设备的市场份额占到15,每天的ANDROID手机的激活量达到85万部。目前国内外都越来越重视ANDROID系统,如把PC上的常用软件移植到ANDROID系统的供手机用户使用,使得产品在移动互联网上占有更大的市场,增加额外的收入等。目前ANDROID手机平台的应用数量达到450000之多。因此,基于ANDROID手机客户端的微博开发,也是现代互联网时代下催生的人们生活中不可或缺的一个产物。3G互联网时代下,移动应用越来越多,ANDROID403版本已经发布,未来采用ANDROID系统手机越来越多。不仅仅在于手机,在任何移动设备上,都可以采用ANDROID开发移植到终端设备上,例如电视、冰箱、空调、洗衣机等。将这些设备计入互联网,我们可以通过手机实时知道各个设备的状态,也可以控制它们工作。总之,ANDROID将带给我们更加智能、便捷、现代的生活。从而,ANDROID应用的开发,将会越来越庞大,需求将会越来越丰富。开发微博手机客户端和其他应用将会越来越普遍,ANDROID将会越来越壮大。12微博网站研究现状和发展趋势随着互联网的发展,微博逐渐成为新一代的网络分享个人感受,想法等的工具。人们越来越喜欢用微博来写一段话,随时随地分享身边的新鲜事。由于采用ANDROID系统的智能手机市场份额越来越大,为了能够方便用户在手机上发表微博,微博手机客户端的开发也就应运而生。由于新浪微博在国内市场份额较大,而且新浪提供给开发者成熟的开放API接口和完善的SDK开发包。能够方便开发者很快的做出自己的ANDROID新浪微博客户端应用。由于项目的工作量较大,本人开发设计客户端的各个界面UI设计与布局。提供给用户一个一个手机操作界面。13本文的主要工作和各章内容安排本次毕业设计中,主要对新浪微博客户端系统的UI设计,包括每一个手机显示的界面、如何设置每一个控件的显示、如何选用容器、如何设置背景、如何设置BUTTON的点击效果、如何使用对话框、如何使用新浪SDK(WEIBO4ANDROID)获取网络信息,发表评论、转发等、如何上传本地图片界面设计等。经过一段时间的努力,基本完成了上述设计任务,取得一定成绩。本论文是对我的毕业设计工作的技术总结,全文共六章,内容安排如下第1章绪论概括了下面开发的背景、意义与发展趋势。第二章首先介绍ANDROID的技术与理论,然后介绍了ANDROID的系统开发及应用。第三章首先介绍开发平台与开发工具,然后介绍了开发环境及所用开发语言。第四章首先介绍ANDROID手机界面的特点,然后描述了新浪微博客户端界面应该满足那些需求,并做了分析。接下来详细描述每一个界面是如何设计的。第五章详细介绍了每一个界面的设计思想及各个界面之间的跳转实现。第六章介绍了系统界面测试条件、测试流程、测试用例和测试结果。第七章主要写了本文工作总结。2ANDROID技术与理论21ANDROID系统开发简介211ANDROID技术简介ANDROID一词的本义指“机器人”同时也是GOOGLE。于2007年11月5日宣布的基于LINUX平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。它采用软件堆层SOFTWARESTACK,又名软件叠层的架构,主要分为三部分。底层以LINUX内核工作为基础,由C语言开发,只提供基本功能中间层包括函数库LIBRARY和虚拟机VIRTUALMACHINE,由C开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以JAVA作为编写程序的一部分,不存在任何以往阻碍移动产业创新的专有权障碍。GOOGLE通过与软、硬件开发商、设备制造商、电信运营商等其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。对于设备制造商来说,ANDROID是一个免费的平台。对硬体开发厂商来说,ANDROID是个开放的平台。只要厂商有能力,可以在这个平台上自由加入特有的装置或功能,不受手机作业系统厂商的限制。对于手持装置的开发者来说,ANDROID是个先进的平台。平台上的应用程式可相容于各种型号的ANDROID手机,免去为各种不同手机机型开发的困扰。ANDROID平台支援各种先进的网络、绘图、3D处理能力,可以用来提供更好的使用者体验。ANDROID它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。ANDROID软件平台主要由五部分构成,它们分别是关键应用程序、应用程序框架和组件、C/C函数库、JAVA程序运行环境、优化了的LINUX内核。关键应用程序ANDROID平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历、网页浏览器等,而更多有特色的ANDROID应用程序还有待于广大开发者共同参与开发。应用程序框架及组件ANDROID应用程序开发基于框架和组件。ANDROID本身已在其框架中提供了许多组件供应用程序调用,开发者也可在开发应用程序时顺带开发新的组件,并将该组件放入应用程序框架中,以供自己和其它应用程序调用。C/C函数库ANDROID应用程序框架之下是一套C/C函数库,它们服务于ANDROID应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括标准C函数库、媒体功能库、浏览器引擎、2D和3D图形库等。JAVA程序运行环境ANDROID的JAVA程序运行环境包含一组JAVA核心函数库及DALVIK虚拟机,它们有效地优化了JAVA程序的运行过程。LINUX内核ANDROID系统平台基于优化了的LINUX内核,它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层。ANDROID应用程序以各种组件API为基础,API是ANDROID软件平台的重要组成部分,也是开发ANDROID应用的关键所在。当前活动程序ACTIVITY作为最常用的应用程序组件,几乎所有ACTIVITY都会通过创建UI窗口与用户进行交流。ACTIVITY具有生命周期,它包含运行、暂停、停止等几个状态,状态间的转换可通过调用ONCREATE、ONSTART、ONRESTART、ONRESUME、ONFREEZE、ONPAUSE、ONSTOP、ONDESTORY等方法来实现。要开启新的ACTIVITY,可以调用STARTACTIVITYINTENT,或调用STARTSUBACTIVITYINTENT,INT,后者通常和ONACTIVITYRESULTINT,INT,STRING,BUNDLE联合使用,以从一个ACTIVITY获取某结果并返回给打开它的ACTIVITY。图像显示VIEWVIEW是最基本的UI构件,它在屏幕中占据一个矩形区域可用来显示文本、图像等内容,还可完成图像事件处理。常用的VIEW方法有INFLATE(由XML文件生成VIEW、ONDRAWCANVAS(对VIEW进行填充、ONMEASUREINT,INT测量VIEW的高度和宽度、ONLAYOUT完成VIEW的布局、ONKEYDOWNINT,KEYEVENTVIEW中有按键操作时被调用、ONFOCUSCHANGEDBOOLEAN,INT当VIEW得到或失去关注时被调用、SETONCLILCKLISTENER设置VIEW点击事件监听器。VIEW也包含一些子类,如TEXTVIEW布局文件中的文本显示、EDITTEXT布局文件中的文本编辑、BUTTON按钮)、LISTVIEW显示列表。事件INTENTINTENT抽象描述了想要执行的某种操作,它与STARTACTIVITY一起使用可以开启新的ACTIVITY,与STARTSERVICE一起使用可以开启后台服务。INTENT最重要的作用还是加载ACTIVITY,它是不同ACTIVITY间的桥梁。INTENT也可以被认为是一种概括操作行为的数据结构,它主要包括ACTION动作和DATA数据两部分,此外它还具有一些附加属性如CATEGORYINTENT种类、TYPE数据类型等。常用的INTENT方法有INTENT构造INTENT、ADDCATEGORY添加INTENT类型、GETACTION获取INTENT动作、GETDATA获取INTENT数据等。数据存取与共享机制CONTENTPROVIDERCONTENTPROVIDER为应用程序提供一些访问方法,包括QUERYURI,STRING,STRING,STRING,STRING,STRING,STRING数据信息的查询,INSERTURI,CONTENTVALUES在CONTENTPROVIDER中添加新数据,UPDATAURI,CONTENTVALUES,STRING,STRING更新CONNTPROVIDER中的数据,DELECTURI,STRING,STRING删除数据,GETTYPEURI获取数据类型。其中,URI标明了CONTENTPROVIDER存储的数据类型,在执行访问方法时都需依据URI作为路径标识来确定要访问哪个CONTENTPROVIDER。后台服务SERVICESERVICE是运行在后台的应用程序组件,不直接与用户交互。当前活动程序可以使用CONTEXTSTARTSERVICE开启一项后台服务,还可以通过CONTEXTBINDSERVICE与后台服务通信。ANDROID的架构是LINUX内核、C/C函数库、DALVIK虚拟机、应用框架以及关键应用程序构成的,通过编译基于框架的应用程序可以降低开发负荷。应用软件原则上是在DALVIKVM上运行的。212关键应用程序ANDROID平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历和网页浏览器等,开发者可以在其平台上开发更多有特色的应用程序,所用开发语言是JAVA。213应用程序框架ANDROID应用程序的开发基于框架和组件。ANDROID本身已在其框架中提高了许多的组件供应用程序调用,当然开发者也开放新的组件,并将组件放入应用程序框架中,以供自己和其它应用程序调用。214函数库ANDROID应用程序框架之下是一套C/C函数库,它们服务于ANDROID应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括标准C函数库、媒体功能库、浏览器引擎、2D和3D图形库、基于WEB应用的的安全协议SSL、用于点阵和矢量字体渲染的FREETYPE以及SQLITE引擎等。ANDROID的JAVA程序运行环境包含一组JAVA核心函数库及DALVIK虚拟机,它们有效地优化了JAVA程序的运行过程。所有的ANDROID应用都运行在它自己的进程里,该进程是一个DALVIK虚拟机的实例,DALVIK被设计成能在一台设备上高效的运行多个虚拟机实例。DALVIK虚拟机的可执行文件被封装成DALVIK可执行格式DEX。这是被优化过的最小内存依赖的格式。JAVA编译器DX工具将注册了的和运行时用到的类编译成DEX格式。DALVIK虚拟机依赖于底层LINUX内核提供的功能,如线程机制,和内存管理机制等。215LINUX内核ANDROID系统平台是基于优化了的LINUX内核,是其系统平台的核心。它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件。3平台与开发工具31开发平台介绍本设计采用WINDOWSXP/7作为开发平台,由于WINDOWS系列操作系统做为市场份额最大的PC操作系统,无论是用户数还是基于WINDOWS平台应用数都是遥遥领先的。大多数开发者都会选择此平台作为开发平台,而且很WINDOWS多应用在WINDOWS平台提供了的相应的开发工具,如ECLIPSE、QT等。所以本论文采用平台作为开发平台。32开发工具ECLIPSE简介ECLIPSE是一个开放源代码的、基于JAVA的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,ECLIPSE附带了一个标准的插件集,包括JAVA开发工具(JAVADEVELOPMENTKIT,JDK)。虽然大多数用户很乐于将ECLIPSE当作JAVA集成开发环境(IDE)来使用,但ECLIPSE的目标却不仅限于此。ECLIPSE还包括插件开发环境(PLUGINDEVELOPMENTENVIRONMENT,PDE),这个组件主要针对希望扩展ECLIPSE的软件开发人员,因为它允许他们构建与ECLIPSE环境无缝集成的工具。由于ECLIPSE中的每样东西都是插件,对于给ECLIPSE提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。本论文安装的是ANDROID开发插件。33开发语言与开发环境由于ANDROID上层应用的开发是使用JAVA语言的。所以,本文开发语言为JAVA。开发ANDROID项目需要ANDROID开发包(ANDROID_SDK_FORWINDOWS),所以ECLIPSE装有ANDROID开发插件,从而运行ANDROID模拟器,模拟ANDROID智能手机。4微博开发客户端界面分析与设计41ANDROID手机界面的特点由于ANDROID系统是一款手机操作系统,所以基于此系统的应用开发也是基于手机屏幕大小的。手机屏幕大小不一,但要求软件能够适应不同大小的手机屏幕,也就是界面能够自动适应,而且屏幕能够翻转(基于重力感应使屏幕画面自动水平和垂直切换)。ANDROID界面由两大基本组件组成即容器和控件。一个窗口由一个基本的容器组成,容器中可以放容器或者控件,每一个容器或者控件都有大小、长宽等属性。在一个ANDROID应用中,一个ACTIVITY(ACTIVITY是ANDROID中最常用也是最基本的组件)通常就是一个单独的屏幕,每一个ACTIVITY都被实现为一个独立的类,并且继承ACTIVITY这个子类。ACTIVITY提供了与用户交互的可视化界面。创建一个ACTIVITY一般继承ACTIVITY父类。覆盖ACTIVITY的ONCREATE方法,在该方法中调用SETONCONTEXTVIEW()方法来展示要显示的视图,括号中是系统生成的资源文件RJAVA中的LAYOUT类中布局资源XML文件生成的ID。具体如图41所示图41显示界面的类的特点ID指定控件的ID,相当于给控件一个唯一标记。然后再程序中可以通过ID获取控件实例,来进行使用。具体如图42所示图42项目资源文件示例整个ANDROID项目对各个文件做了划分不同文件在不同文件夹中,ANDROID使用XML文件作为系统的布局文件,ANDROID资源文件和文件夹如图43所示图43ANDROID资源文件夹及布局文件示例要想控制手机界面的显示方式,则必须使用布局这一概念。下面讲解一下ANDROID各种布局布局就像容器,里面可以装下很多控件。布局里面还可以套用其他的布局。这样就可以实现界面的多样化以及设计的灵活性。1LINEARLAYOUT(线性)布局线性版面配置,在这个标签中,所有元件都是按由上到下的排队排成的。2RELATIVELAYOUT(相对布局)就是以相对的方式定位布局,允许子元素指定他们相对于其它元素或父元素的位置(通过ID指定)。示例如图44所示图44相对布局示例3FRAMELAYOUT(帧布局)是最简单的一个布局对象。是一个框架布局样式,可以用INCLUDE标签载入定义的另一个LAYOUT文件,所有的子元素将会固定在屏幕的左上角;你不能为FRAMELAYOUT中的一个子元素指定一个位置。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。4TABLELAYOUT(表格布局)是一种类似表格的布局,这种布局会把包含的元素以行和列进行排列。表格的列数为所有行中的最大列数;每一行可以是一个TABLEROW布局对象,也可以是普通的VIEW(视图)对象,TABLEROW里面每一个元素占一列TABLELAYOUT总列数由列数最多的那一行决定。示例如图45所示图45表格布局示例因此,要想实现各种显示效果,可根据不同的界面需求,选用不同的布局方法。42ANDROID微博客户端需求分析作为ANDROID应用程序,一般都会设计相应的启动界面已给用户良好的使用感受。所以,程序首先要设计启动界面,停留35秒,然后进入登陆或者其他界面。系统设计是根据手机数据库中是否保存用户信息(是否是程序第一次启动),如果数据库中包含用户信息,则跳到用户登录界面,在此界面用户可以选择登录账号进行登录,或则可以选择“添加账号”进入授权页面重新进行授权。当数据库中无任何用户信息(程序第一次启动)时,进入前往授权页面请求页面,如果用户同意,则打开浏览器,转到新浪微博授权页面,如果不同意,则退出程序。授权成功(或用户在登录界面点击登录)之后,跳转到用户首页,也就是系统主界面,主界面中各项显示内容在具体章节中介绍在此不予介绍。点击每一条微博信息时,进入微博信息显示界面。写微博界面有添加图片功能可以发送图片,界面背景更换界面可以换背景图片。43客户端用户界面的分析与设计431系统登录界面在需求分析一节中已经提到,当程序第一次启动时会跳到是否前往授权页面,点击开始按钮打开浏览器进行授权认证。整个界面用一张图片作为背景,在界面中间显示一个对话框(DIALOG),对话框的内容采用相对布局,这样可以调节各个控件在对话框中的位置。对话框的大小也采用背景图片来控制,两个按钮在一个对话框上面上,对话框左上角显示提示性小图标,小图标右侧显示对话框标题文字,对话框上放置开始与取消按钮放在对话框内的下方,在对话框中间显示对话框内容,同时支持横竖屏切换。当用户使用此客户端成功登陆授权之后,数据库中已经保存了用户下次可以登录的信息,启动界面后将跳到登陆界面,整个界面的内容采用相对布局。在登录界面右上角添加账号的图片按钮,与父容器右侧对齐。,中间有一个IMAGEVIEW(头像显示框),头像下方是一个用户昵称显示框(EDITTEXT)、下拉按钮和登录按钮,这些控件在一起采用相对布局,可以使这些控件的位置相对摆放,不至于零散。效果示例如图46所示图46系统授权界面432个人用户主界面个人用户主界面,即系统主界面,标题栏采用相对布局标题栏左上角能够显示个人用户头像,靠近标题栏左侧,中间显示个人昵称,右上角显示写微博和刷新按钮,按钮距离顶部5个像素,写微博按钮在刷新按钮左侧。中间是一个微博信息显示列表。微博信息显示列表由一个LISTVIEW来显示,LISTVIEW的每一项中有以下组成,左侧显示发表此条微博的头像右侧上方显示发表微博人的昵称,昵称的右侧显示一个小的图片标示(如果微博中有图片的话),在这一排的最右侧显示发表微博的时间,在这一排的下方显示微博的内容。系统主界面默认加载用户首页信息,并在界面下方设置按钮提示现在显示的哪一项信息,由于本微博端比较简单,下方设计有首页、转发、收藏等按钮。中间微博信息显示界面和下方的按钮,包含在一个相对布局中,几个按钮在一个线性布局中,且紧靠屏幕下方,点击不同的按钮将加载不同的信息。效果如图47所示图47系统主界面中间的LISTVIEW的每一项(当显示含有图片、文本等多控件时)需要使用适配器(需继承自BASEADAPTER)来得到LISTVIEW的需要显示的每一项,这个每一项需要使用布局文件来完成。底部的按钮全部采用图片显示,点击一个后其他此按钮和处于被选中的按钮图片都会切换。切换IMAGEBUTTON需要使用SELECTOR,在DRAWABLE文件夹中定义布局文件。433查看微博信息界面当用户点击上图中任何一条微博信息时,会进入查看微博信息界面,界面上会显示当前用户头像、此微博发布人头像、发布人昵称、微博具体信息、微博中的图片(如果微博中有图片的话),下方会有四个按钮转发、评论、收藏、刷新,整个界面采用线性布局,标题栏采用相对布局,标题栏左侧显示当前登陆用户头像、中间显示“阅读微博”四个字、右侧显示返回按钮。标题栏下方显示一个信息栏,采用线性布局左侧显示发表微博人头像,右侧显示发表微博用户昵称。显示图片和四个按钮采用相对布局,图片显示采用SCROLLVIEW(滚动布局),可以滚动查看图片并按照屏幕大小设置图片的显示比例,下方四个按钮,采用表格布局。效果如图48所示图48微博详情页面434发表微博界面发表微博信息界面左上角有一个返回按钮,右上角有一个发送按钮,用来发表微博。中间用来输入要发表的微博信息,最多输入140个汉字或字符。在右下偏上角会有输入字数统计。界面下方,有添加图片选项,其他功能则未实现。设计如下整个界面采用线性布局,上方的标题栏采用相对布局,左侧显示一个返回按钮,右侧显示一个发送按钮。屏幕中间显示的是一个EDITTEXT文本框,单独采用一个相对布局。文本框下方又使用了一个相对布局,里面的两个控件,用于显示缩略图的放在左边,显示输入字数信息的提示文本在右边。最后在屏幕的最下方,是一个网格布局(GRIDVIEW)有个控件全部为图片,然后在图片上依次显示文字“照相”、“”、“表情”。效果如图49所示图49发表微博页面435系统背景图片更换界面整个界面采用同一种背景色,最左上角显示界面名称“修改主题背景图片”,中间有4排第一排显示两张图片,第二排显示主题图片名称和选择单选按钮,第三四两排和一二两排相似。界面最下方并排显示两个按钮“保存”和“返回”。整个界面采用线性布局,每一排都采用线性布局(属性设置为水平),可以很好地控制布局。每一张图片都设置了显示的高度与宽度,按钮都采用了RADIOBUTTON(单选按钮)。436系统历史记录界面系统历史界面,显示用户退出时最后浏览的公共微博信息,和进入微博主界面时显示效果类似。界面上方显示标题栏上面界面标题文字,中间LISTVIEW,最下方显示一个BUTTON文字是“退出”。此界面布局较简单,整体依然采用线性布局,设置布局方式为垂直ANDROIDORIENTATION“VERTICAL“,从上到下依次是TEXTVIEW、LISTVIEW、BUTTON三个控件。5系统各个界面的具体实现51启动界面的实现启动界面最主要的工作时设置画面延时,并且能够在画面显示的3秒内对HOME键、返回键,做出相应,并且可以支持横竖屏切换。实现延时效果主要使用线程来实现。当ANDROID程序启动时,首先由ANDROIDMAINFESTXML系统主配置文件来查找第一个要显示界面(第一个要显示的ACTIVITY必须要包含在与之间)登录界面由ACCOUNTACTIVITYJAVA类负责显示。然后根据当前类要显示布局文件文件来绘制整个界面。随之,启动延时线程,采用循环,循环一次线程休眠100MS(防止系统卡顿)。按下HOME键则返回手机主界面,延时暂停,再点击启动程序时延时线程继续运行,直到3S后,跳到下一个界面。当按下返回键时,程序将关闭。52登录界面的实现上文已经提到登录界面分为两个界面显示。当程序第一次启动时跳到授权请求允许界面,页面上显示一个(对话框)DIALOG,DIALOG的样式设置由RES,文件夹下的VALUES文件夹DIALOGSTYLEXML负责,界面显示时,先生成一个DIALOG对象,然后显示这个DIALOG,这样做可以使横竖屏切换时,对话框显示方向随屏幕切换。DIALOG的内部显示的内容布局文件为DIALOG_AUTHXML文件。用户可以点击“开始”进入浏览器授权页面,也可以点击“取消”退出软件。53个人用户主界面的实现当用户点击登录按钮或者授权登录成功后跳到用户个人主界面,主界面的布局难点是如何显示每一条微博信息,而ANDROID中显示每一项最常用的是LISTVIEW,因此本系统显示微博信息也采用LISTVIEW控件。下方采用5个按钮来切换显示各个信息,如果采用TABHOST则要分别多个布局文件,比较麻烦。因此采用按钮来切换显示内容,当点击一个按钮时,此按钮的图片会被更换,以标示当前显示的是哪一项信息。同时加载微博信息后将网址和人名设置高亮显示,给用户一种良好地感觉。微博信息中的时间,则是用发布微博信息的时间和查看微博信息的时间经过比较转换后的时间,最后显示如(4秒前、5分钟前、1小时前、2天前等)。当进入用户主界面时,显示主界面基本框架并显示加载进度对话框,当信息加载完时,主界面则中LISTVIEW显示完整。这样做可以避免因网速等原因,当加载信息很慢时,手机界面长时间黑屏,也可以避免手机(ANDROID系统对长时间无响应程序,将会回收ACTIVITY)对当前程序无响应。点击刷新等按钮时,切换图片这是给用户更好的操作体验。54查看微博信息界面的实现当用户在个人用户主界面时,点击一条微博信息时,将会跳到查看微博信息界面。界面上方显示当前用户头像则是给人一种自己在登录的感觉,返回按钮则可以使用户快速的回到主界面,并且下方显示查看微博的具体信息,还可以查看图片,并且使图片不会超过范围。最下方的四个按钮给用户提供更多的选择,用户可以点击收藏按钮实现收藏此条微博。其他功能,尚未实现。55发表微博界面的实现当用户点击写微博按钮时则跳到发表微博界面,界面返回按钮,可以很快回到用户主界面,发送按钮则用来发送微博信息。当用户在文本框输入字符时,下方的文本提示将会显示输入字数如“8/140”,输入140个字后,则无法输入,当无输入时则显示“0/140”,此时点击发送按钮时,将不会有任何操作。未了增强体验增加了发送图片功能,点击下方图片选项时,将会打开新的界面,此界面为SD卡文件浏览界面,可以单击打开文件夹,当点击图片文件时,选择按钮才可以用(返回发送微博界面),点击其他文件时选择按钮不可用,点击取消时也返回发送微博信息界面。选择图片后,则显示图片的缩略图。点击发送按钮时,自动检测是否有图片,有图片则发送有图片信息的微博,否则发送普通信息的微博。需要注意的是在返回到发表微博界面信息,需要获得所选择的图片路径。因此需要重写ONACTIVITYRESULT方法,代码如下OVERRIDEPROTECTEDVOIDONACTIVITYRESULTINTREQUESTCODE,INTRESULTCODE,INTENTDATASUPERONACTIVITYRESULTREQUESTCODE,RESULTCODE,DATABYTESINTI0SWITCHRESULTCODE/根据返回代码,进行先关处理CASERESULT_OKIMGPATHDATAGETSTRINGEXTRA“FILEPATH“SYSTEMOUTPRINTLN“IMGPATH“IMGPATHTRYINPUTSTREAMISNEWFILEINPUTSTREAMNEWFILEIMGPATH/根据路径获取图片对象DRAWABLEDDRAWABLECREATEFROMSTREAMIS,“SRC“THUMBIMGSETBACKGROUNDDRAWABLED/显示图片缩略图CATCHFILENOTFOUNDEXCEPTIONEEPRINTSTACKTRACEHAVEIMGTRUEBREAK56更换背景图片界面的实现为了给用户增加一些新鲜感,所以增加了系统背景更换功能。当点击设置按钮时,跳转到主界面背景设置界面,为了突出界面中的四张图片,同时消除ANDROID无背景的情况,整个界面采用同一种背景色,为了突出单选的感觉,所以图片下方都使用了RADIOBUTTON(单选按钮),而要实现同时只有一个按钮被选中,则采用了对每个按钮单独进行处理的方案(RADIOGROUP要求每个RADIOBUTTON之间不能有其他控件,所以未采用)即点击一个按钮时是这个按钮处于选中状态CHECKED属性设置为TRUE,其他按钮CHECKED属性设置为FALSE;点击保存按钮则返回到系统主界面,此时系统主界面背景已更换。57各界面之间切换的实现界面切换是系统界面设计的核心部分,实现两个界面之间的切换是ANDROID界面设计的基本内容,本系统主要使用INTENT(意图)实现界面切换。INTENT可用于从一个ACTIVITY转到另一个ACTIVITY,还可以启动服务(在此不作介绍)。示例如下INTENTINTENTNEWINTENTFIRSTACTIVITYTHIS,SECONDACTIVITYCLASSSTARTACTIVITYINTENT/启动INTENT切换到另一个ACTIVITY最常见的还有一种需要将数据传到另一个ACTIVITY中示例如下INTENTINTENTNEWINTENTHOMEACTIVITYTHIS,VIEWACTIVITYCLASSBUNDLEBNEWBUNDLE/用于界面切换存放传递的数据BPUTSTRING“KEY“,ID/以键值对的形式INTENTPUTEXTRASB/INTENT对象保存该数据STARTACTIVITYINTENT第一个ACTIVITY获取第一个ACTIVITY的数据代码如下INTENTINTENTTHISGETINTENT/根据当前ACTIVITY获取INTENT对象BUNDLEBINTENTGETEXTRAS/获取INTENT中的BUNDLE对象KEYBGETSTRING“KEY“/根据键值获得具体数据如果第二界面要想返回结果到第一个界面,则在改写ONACTIVITYRESULT方法,启动第二个ACTIVITY则要使用STARTACTIVITYFORRESULT方法。最后还要说一点的是,ANDROID中每一个ACTIVITY(显示界面类)必须在ANDROIDMANIFESTXML系统最主要的配置文件中进行注册,才可以显示该界面,否则系统将报异常。6客户端界面测试61系统测试的目标系统测试是整个软件最后必须要经历的步骤,系统测试主要测试系统的稳定性、健壮性等。本毕业设计主要测试各个界面切换是否正常、界面内控件是否在操作之后做出相应的反应。62测试条件与测试流程首先测试的是用户完整登录用户用户主页,及发送微博等,所以测试需要在联网条件下进行。由于自己开发的应用需要测试用户数有限,所以应用中必须添加测试用户的新浪微博ID,此用户才可以使用该应用(客户端)登录系统。如在联网情况下,测试流程为第一次打开程序,看经过3S后是否进入用户登录授权允许界面、用户输入账号与密码后是否进入用户主界面、在主界面点击各个按钮界面的信息是否发生变化、点击微博消息是否进入查看具体微博信息界面、点击设置按钮是否进入设置界面、点击刷新按钮是否刷新消息、点击写微博按钮是否进入发送微博信息界面。63测试用例与测试结果测试用例1显示授权页面。点击授权是否弹出授权页面,点击登录是否能成功登录。测试结果,点击授权出现了授权页面,输入用户名和密码后点击登录,成功登录页面,并显示系统主页面。测试用例2界面切换。点击发送按钮,后是否进入发送微博页面,是否能成功发送微博。测试结果,点击发送按钮后进入了发送微博页面,输入要发送的微博的内容后,点击发送按钮,主界面中间显示用户发送的微博信息。测试结果基本符合预期。7总结2015年3月,我开始了我的毕业论文工作,时至今日,论文基本完成。从最初的茫然,到慢慢的进入状态,再到对思路逐渐的清晰,整个写作过程难以用语言来表达。历经了几个月的奋战,紧张而又充实的毕业设计终于落下了帷幕。回想这段日子的经历和感受,我感慨万千,在这次毕业设计的过程中,我拥有了无数难忘的回忆和收获。由于在外培训,3月初,在与项目老师的交流讨论中我的题目定了下来是基于ANDROID平台的新浪微博客户端系统界面开发。当题目定下来的时候,我当时便立刻着手资料的收集工作中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 4669-2:2025 EN Document management - Information classification,marking and handling - Part 2: Functional and technical requirements for ICMH solutions
- 【正版授权】 ISO 7207-2:2025 EN Implants for surgery - Components for partial and total knee joint prostheses - Part 2: Articulating surfaces made of metal,ceramic and plastics material
- 【正版授权】 ISO 15638-23:2025 EN Intelligent transport systems - Framework for collaborative telematics applications for regulated commercial freight vehicles (TARV) - Part 23: Tyre pre
- 【正版授权】 ISO 1014-3:2025 EN Coke - Part 3: Determination of porosity
- 【正版授权】 IEC 60888:1987 FR-D Zinc-coated steel wires for stranded conductors
- 【正版授权】 IEC 60404-1:2016+AMD1:2025 CSV EN Magnetic materials - Part 1: Classification
- 【正版授权】 IEC 60245-5:1994 EN-D Rubber insulated cables - Rated voltages up to and including 450/750 V - Part 5: Lift cables
- 雀巢产品面试题及答案
- 村计生考试题及答案
- 计量基础考试题及答案
- 建筑公司分包合同管理办法
- 2025至2030苏打水行业发展趋势分析与未来投资战略咨询研究报告
- 2025年秋季学期德育工作计划:向下扎根向上开花
- 附着式钢管抱杆铁塔组立施工方案
- 工贸企业重大事故隐患判定标准培训PPT
- (完整word版)身份证号码前6位表示的地区对照表
- 高中生物的学习方法
- GE彩超Logiq操作手册培训课件
- 罐头食品工艺
- 混凝土外加剂检测原始记录表
- GB/T 15670-1995农药登记毒理学试验方法
评论
0/150
提交评论