毕业设计(论文)-基于Android系统的魅力城乡旅游助手软件.doc_第1页
毕业设计(论文)-基于Android系统的魅力城乡旅游助手软件.doc_第2页
毕业设计(论文)-基于Android系统的魅力城乡旅游助手软件.doc_第3页
毕业设计(论文)-基于Android系统的魅力城乡旅游助手软件.doc_第4页
毕业设计(论文)-基于Android系统的魅力城乡旅游助手软件.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河北农业大学信息学院 本科毕业论文 题 目: 基于Android系统的魅力城乡旅游助手软件 学 院: 信息科学与技术学院 专业班级: 计算机科学与技术1001班 学 号: 二O一四 年 六 月 一 日 摘 要现如今,人们的生活节奏不断加快,同时工作强度也在不断的加强,因此每逢工作之外的节假日,出行旅游逐渐变成了人们度假的主要方式之一。因为旅游不仅能够领略祖国大好河山的壮丽,还能起到放松身心、缓解压力的作用。乡村旅游是以农业和农村为媒介,能满足旅游者观光、休闲、度假、娱乐、购物、求知和回归自然等方面需求的一种旅游方式。随着生态意识和低碳时代的发展,“亲近自然、返璞归真、休闲生态”已成为当今世界发展的主旋律,乡村旅游正是顺应了这一要求,迅速走俏国内外。魅力城乡正是一款,运行在 Android 智能手机上的旅游助手软件。该软件将城乡新型发展方向(城乡旅游)和Android智能手机软件相结合,通过Android智能手机软件可以促进城乡旅游更好的发展。该软件包含多种乡村旅游的分类选项,包括农家乐、度假村、采摘、美食、特产、乡村、精品路线等。用户可以按照分类查找相关旅游信息。在该软件的简单信息显示界面,提供了该景点的等级和特色服务信息,方便用户查找筛选。在该软件的附近界面,可以列出用户所在地周围50km内的景点信息,可以为用户的出行提供参考。该软件的特殊之处就在于,可以为用户的周末的出行提供方便。用户可以通过该软件找到附近的乡村旅游景点,不仅省时而且省钱,但是同样能够领略大自然的美丽,愉悦身心,缓解压力。关键字:旅游、城乡、农业新型发展、 休闲娱乐AbstractNowadays , peoples pace of life continues to accelerate, while the intensity of work has also been strengthened, and therefore outside of work during holidays , travel tourism has gradually become one of the main ways that people on vacation . Because tourism is not only able to enjoy the magnificent mountains and rivers of the motherland , but also to relax mind and body , relieve the pressure of working life . Rural tourism is the medium of agriculture and rural areas , to meet tourists sightseeing , a way to travel and leisure, vacation, entertainment, shopping , and other aspects of knowledge and demand a return to nature . With the development of eco- consciousness and low-carbon era , close to nature , back to nature, recreation ecology has become the main theme of todays world development , rural tourism is in line with this requirement, rapidly popular in home and abroad.It is an urban-rural charm , running on an Android smartphone , and rural tourism assistant and new development, and mobile platform combining software. The software includes a variety of sorting options classification of rural tourism , the user can find relevant information in accordance with the classification , and provides detailed information related to the evaluation , grade, and specialty services , user-friendly screening. And there are relevant near , fine line, as well as the scenic surrounding , beautiful pictures and other relevant information related to users recommend appropriate lines to help users better travel. Especially on a weekend trip , users can easily find around the farmhouse related tourist attractions, not only save time and money, but also be able to enjoy the beauty of nature , physical and mental pleasure and relieve stress.Keywords: tourism , urban and rural , the new direction of development of agriculture , recreation目录摘 要IAbstractII目录III1. 绪论11.1 前言11.2 课题研究的背景及意义11.3 国内外研究概况与发展趋势11.4 设计的主要工作21.5 论文组织22. 开发环境和开发技术32.1 系统结构32.2工具环境介绍32.2.1 开发环境的选择32.2.2 Eclipse+Android SDK简介33.1 用户的需求分析43.2 可行性分析43.2.1经济可行性43.2.2 技术可行性43.2.3 社会可行性43.3 性能需求53.4 功能需求53.4.1用户界面需求53.4.2 逻辑跳转需求54. 系统设计64.1 总体结构设计64.1.1 系统基础结构64.1.2 系统结构设计64.2 数据处理74.2.1 基本数据的处理7 基本数据的处理流程7 网络请求基本数据的方式84.2.2 图片信息的处理9 图片数据的处理流程9 网络请求图片数据的请求方式104.3 数据库设计104.3.1 数据库简介104.3.2 物理结构设计10 shengname.db 的结构10 对 mlcx.db 数据库的操作125. UI界面设计部分135.1 首界面的设计135.2 主菜单界面135.2.1 主页界面135.2.2 附近界面145.2.3 搜索界面145.2.4 更多界面155.2.5 城市选择界面155.3 信息显示界面165.3.1 简单信息显示界面165.3.2 详细信息界面。165.3.4 景区周边视图166. 数据的处理186.1 网络数据的获取和处理186.1.1 数据的加载的处理186.1.2 向服务器发送信息请求186.2 数据的缓存186.2.1 sharedPreference 的使用186.2.2SQLite 数据库196.3 图片的缓存处理196.3.1 LruCache196.3.2 内部缓存196.3.3 本地文件缓存197. 结束语22参考文献23IV1. 绪论1.1 前言城乡旅游是一种以休闲农业为主题的旅游,汇集农家乐、采摘、美食、度假村、特产、乡村等分类的旅游,特别适合周末出游安排。城乡旅游不仅能让我们领略大自然的风光,体验当地的风土人情,还能体验劳动的快乐,让我们从纷繁复杂的城市生活中暂时的解放出来。城乡旅游是一种集社交、休闲、娱乐为一体的休闲活动,已经日益走进我们的生活。伴随着移动互联时代的到来,人们的生活和智能手机,平板电脑,可穿戴智能设备等的联系越来越紧密,并且Android智能手机价格便宜,性能优良,市场占有率最大,制作一款将“城乡旅游”与Android智能手机相结合的软件“魅力城乡”来方便大家的出行是有必要,且符合发展趋势的。该软件包括,城乡旅游中农家乐、度假村、采摘等多中分类信息,能够根据选择城市的城市显示不同地点的分类信息,还提供了精品路线页面,为用户的节假日安排提供参考。该软件操作简单,符合大众的操作习惯,信息显示简洁明了。1.2 课题研究的背景及意义旅游作为“社交”“休闲娱乐”的一个重要途径,已经逐渐成为我们生活的一部分,特别是在生活节奏快,工作压力大的大中城市,外出旅游是提高生活品质、缓解压力的重要方式。城乡旅游作为一种自然体验式的旅游方式,越来越吸引大众的眼球。随着新型城镇化建设的不断深化,产品打造、产业发展、消费需求、配套建设等方面带来重大利好,城乡旅游形成新的发展机遇。所以,要充分发挥资源优势,进一步完善功能、突出特色,加快推进农业、城乡和旅游业融合发展,推进文化旅游产业提速振兴,满怀信心迎接大旅游时代的到来。同时,旅游业的发展,又能给给农业带来新鲜的空气,增加农民收入,缩小城乡差距,加快推进社会主义的建设步伐。随着信息科技的不断发展,在传统营销的前提下,为了更好的发展,“城乡旅游”也应该与时俱进,通过新的营销方式让更多的人去了解,并参与其中,是非常有必要的。伴随着移动互联时代的到来,智能手机,平板电脑,可穿戴设备等已经走进千家万户。据艾瑞网统计2014年第一季度中国移动互联网市场规模为330.7亿元,同比增长78.5%;2014Q1移动互联网增速虽然季节性放缓,但仍然充满生机。特别是Android智能设备,由于源代码开放,价格便宜,App应用多样,广受大众的喜爱。所以,将“城乡旅游”与“Android智能设备”结合是有必要的。1.3 国内外研究概况与发展趋势城乡统筹是以城市和农村一体发展思维为指导,以打破历史和制度设计形成的城乡二元结构为出发点,立足城市发展,着眼农村建设,以最终实现城乡差距最小化、城市和农村共同富裕文明为目的的一项系统工程。其实质是赋予城乡居民平等发展的机会,而不是简简单单的把乡村改造成城镇、把工业推向农村、把农民引入城镇,更多是要为农村的发展创造公平的环境,一方面对农业的产业结构和布局进行科学调整,推动农村经济的发展;另一方面,则要推动农民生产方式与生活方式的转变。乡村旅游是以具有乡村性的自然和人文客体为旅游吸引物,依托农村区域的优美景观、自然环境和乡土文化等资源,在传统农村休闲和农业体验的基础之上,拓展开发商务度假、休闲娱乐等项目的新兴旅游方式,使得旅游者可在乡村及其附近观光逗留游玩、了解风俗民情、学习礼仪习俗、体验乡村生活模式,感受别样的生活环境氛围。20世纪70年代后,乡村旅游被视为是一种阻止农业衰退、增加农民收入和创造就业机会的有效手段,在美国和加拿大蓬勃发展;20世纪90年代后,我国的乡村旅游以惊人的速度开始发展起来,随着生态意识和低碳时代的发展,“亲近自然、返璞归真、休闲生态”已成为当今世界发展的主旋律,乡村旅游正是顺应了这一要求,迅速走俏在国内外。随着移动互联时代的到来,智能手机,平板电脑,可穿戴设备等已经走进千家万户。据艾瑞网统计2014年第一季度中国移动互联网市场规模为330.7亿元,同比增长78.5%;2014Q1移动互联网增速虽然季节性放缓,但仍然充满生机。特别是Android智能设备,由于源代码开放,价格便宜,App应用多样,广受大众的喜爱。两股发展趋势相融合,一定能擦出耀眼的火花,但是目前,设计“城乡旅游”的专门网站还不多,最大的就是北京农信通科技有限责任公司的魅力城乡网站(/),以及其开发的 Iphone版和Android版魅力城乡软件,由于资源和技术的限制,所以我选择模仿北京农信通科技的Android版魅力城乡,功能相同,但是实现的形式有差别。1.4 设计的主要工作UI界面的设计:给用户提供美观,方便交互操作的UI界面数据的获取与处理:向服务器请求相关的数据,并且在本地解析成本地可用的数据,将其显示在用户界面,给用户提供简洁明了的信息,方便用户的信息浏览。相关数据的存储:包括基本数据的缓存(保存到文件,SQLite数据库),图片的缓存(将图片缓存到本地)避免每次都进行网络请求带来的问题。1.5 论文组织第一部分,绪论。主要是介绍该项目开发的背景及研究意义。第二部分,开发环境和开发技术。主要是讲解开发用的工具,开发中应用的主要技术等。第三部分,需求分析。是分析本项目研究开发的意义。第四部分,系统设计。是介绍本项目开发的流程,几个模块儿的实现过程。第五部分,UI界面介绍。主要是将该项目的用户操作及应用的相关技术做相应的介绍。第六部分,数据处理,对该项目中应用的数据处理的技术进行详细的介绍。第七部分,结束语,总结该项目开发的经验。2. 开发环境和开发技术2.1 系统结构该项目采用的数据请求模式是,手机客户端向服务器请求数据,将数据下载到本地之后,再对信息进行解析,整合,分类,最后将信息显示在相应的用户界面,为用户的筛选适合自己的旅行方案提供方便。该项目通过结构化的设计,为用户提供了基本信息显示界面、详细信息显示界面、搜索界面、城市定位界面等与用户交互的界面。用户可以选择感兴趣的景点,该选择(点击)操作会触发手机向服务器发送请求消息,得到相应的数据后,将数据缓存在本地文件、SQLite数据库中,方便用户在断网的情况下,也能够查看历史信息。2.2工具环境介绍2.2.1 开发环境的选择本系统开发环境采用的是直接从 上下载的集成了Android ADT (Android Developer Tools)和 Android SDK (Software Development Kit)的 Eclipse 开发工具。ADT 是连接 SDK 与 Eclipse 的工具。SDK 一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。在Android中,它为开发者提供了库文件以及其它开发所用到的工具。简单理解为开发工具包集合,是整体开发中所用到的工具包。本系统的运行环境是 Genymotion Android 系统模拟器(Android 4.2.2),和 Android智能手机实体设备(Android 4.2.1)。开发环境:a.Windows 与 Linux下 b.安装配置Java JDK开发工具:Eclipse中安装Android SDK(Software Development Kit)插件2.2.2 Eclipse+Android SDK简介Eclipse 是一个开放源代码的、基于Java的可扩展开发平台,由IBM倡议开发,通过安装插件组件构建的集成开发环境。Android是谷歌(Google)公司推出的手机开发平台,与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。SDK(Software Development Kit)是软件开发工具包,广义上指辅助开发某一类软件的相关文档、范例和工具的集合。他是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发Windows平台下的应用程序所使用的SDK。它可以简单的为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK 还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。因此,Android SDK 指的是Android专属的软件开发工具包。其最震撼人心之处在于Android手机系统的开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本,也具有更大的活力。3. 需求分析用户需求分析指在系统设计之前和设计、开发过程中对用户需求所作的调查与分析,是系统设计、系统完善和系统维护的依据。3.1 用户的需求分析用户的需求分析是项目开发的第一项任务,是软件设计、功能实现的依据。明确的用户需求是软件开发的关键,只有有了明确的需求,才能开始项目的设计与开发,该项目的用户需求主要包括以下七个方面的内容:1 可以将众多的信息分类2 可以简短的介绍各景点,包括:评价,等级,特色等信息,方便用户快速的筛选3 展示详细的用户感兴趣的景点的信息,包括地址,联系电话等,并且允许用户进行收藏,方便以后的使用。4 可以根据用户的需要进行相关信息的筛选。5 实时更新景点信息。6 提供经典路线的推荐及景区周边等模块。7 用户界面,简洁明了,方便操作。3.2 可行性分析可行性分析是系统分析阶段的第二项活动,它的主要目是进一步明确系统的目标、规模与功能,对系统开发背景、必要性和意义进行了调查分析并根据需要和可能提出开发系统的初步方案与计划。通过调查分析,本系统设计主要有以下三个可行性:3.2.1经济可行性该系统操作简单,开发语言是就有跨平台的 JAVA 语言,开发的底层平台开源的是 Linux 系统,开发工具是使用方便简单的 Eclipse ,实现的目标是 Android APK 软件,成本不高。该软件的成功开发,可以帮助现代人制定出游计划,体验农家乐(特别是在周末的闲暇时候)。并且,该软件所以依附的 Android 智能手机市场。3.2.2 技术可行性该项目使用的语言基础是 JAVA 语言,在大学已经学习,并且加上面向对象程序设计,数据库系统机构与设计等课程的学习,积累了开发项目的知识基础。再加上最近学习的 Android 开发基础知识,在 UI 用户界面的设计,网络数据请求,相关数据的存储等方面已经可以熟练的运用。针对用户提出的七点需求,相信经过进一步的深入学习,以及老师的指导下,能够实现。3.2.3 社会可行性该软件的需求符合当代物质文化房展的趋势。随着经济的发展,人民生活水平的不断提高,精神追求方面也在发展,越来越多的人将旅游作为休闲、娱乐的方式,从纷繁复杂的城市生活中抽身出来,回归自然,呼吸新鲜的空气。城乡旅游,是一种即能回归自然,又能亲身参与其中的旅游方式,而且方便,快捷,不需要特别的时间。开发“魅力城乡”这一软件,为用户提供汇总的各种城乡旅游的信息,方便用户的选择,是一款符合大众期望的软件。3.3 性能需求该软件能够在 Android4.1及以上的系统上正常运行3.4 功能需求主界面上显示分类信息,点击相关分类的图标,显示简单信息界面。点击每个选项可以跳转到相应的详细信息界面。在详细信息界面,点击链接可以跳转到拨打电话界面,点击地链接可以跳到标记有该景点信息的地图界面,点击周边可以跳转到周边景点的详细信息显示界面。还能在主页中单击城市按钮选择城市,该软件的简单信息显示界面会根据选择的城市名和分类信息的不同而显示不同的信息。3.4.1用户界面需求简单,大方,明了,操作简单,在适当的地方给予文字提示。也可以配合大众都认识的图标显示。3.4.2 逻辑跳转需求页面的跳转可以分为四级跳转。首页面(欢迎页图5-1)是一个动画,该动画执行完成后就能跳转到主界面(图5-2至图5-6)。在主界面中可以选择主页界面(图5-2)、附近界面(图5-3)、搜索界面(图5-4)、更多界面(图5-5)、城市选择界面(图5-6)。选择主页界面,可以跳转到相应的简单信息显示界面(图5-7),单击相应的 item 选项,可以跳转到相应的详细信息介绍界面(图5-8)。详细信息显示界面(图5-8)可以点击链接跳转到电话拨号界面、地图坐标显示界面,周边景点界面。4. 系统设计4.1 总体结构设计该项目采用的是手机向服务器发送请求,服务器接收到用户的数据请求后,将数据返回给客户端的开发模式。4.1.1 系统基础结构手机和服务器之间请求数据的方式,采用的是客户机服务器模式,手机客户端软件根据用户的点击操作,发送相应的请求信息到服务器,然后服务器根据用户的请求返回给用户相应的数据。具体过程参见图4-1。图4-1系统组织结构图4.1.2 系统结构设计软件工作流程图,如图4-2:程序的入口是一个欢迎页,该欢迎页包含一个属性动画,动画的内容是文字和页面背景图片的透明度。动画完成后,跳到主界面。主界面是一个包含四个Fragment的Activity。这四个Fragment包括主页界面、附近页面、搜索页面、更多页面。点击主页面(图5-2)左上角的城市名(例如:北京市)可以跳转到城市选择界面(图5-6),可以选择城市。点击主页面上的分类信息,可以跳转到相应的简单信息列表显示界面(图5-7)。单击简单信息显示界面的 item选项,可以跳转到相应的详细信息显示界面(图5-8)。在详细信息显示界面,单击电话号码,可以跳转到电话拨号器界面;单击地址链接,可以调转到显示该景点位置的地图页面;点击周边景点可以跳到相应的周边景点界面;单击右上角的菜单按钮,可以收藏该景点,单击更多页面的收藏按钮可以显示收藏的景点列表。附近界面(图5-3),显示的简单信息列表显示,单击item可以跳转到相应的详细信息显示界面。搜索界面(图5-4),上面有一个搜索框,可以输入数据进行检索,点击下面的按钮都能跳到相应的简单细信息列表显示界面。更多界面(图5-5),包括三个按钮“我的收藏”、“历史记录”、“清除缓存”。点击“我的收藏”,可以显示用户收藏的列表项。点击“历史记录”可以查看用户查看的所有详细信息的列表项。点击“清除缓存”可以清除数据库中缓存的数据,和本地缓存的图片信息。图4-2 软件工作流程图4.2 数据处理该项目使用了数据库缓存信息。对于基本数据的处理分为WIFI联网,MOBILE联网,和没有网络三种情况。4.2.1 基本数据的处理 基本数据的处理流程如图4-3所示在WIFI情况下,直接从网络获取数据。加载数据后在本地进行处理,并将下载后的数据存储到 mlcx.db 的数据库中缓存起来。在mobile情况下,先判断本地缓存中有没有数据,如果本地数据库中粗在该组数据,那么直接从缓存中取数据,如果没有那么就用手机流量请求数据,成功下载数据后,进行数据的处理,将数据缓存到本地的数据库,方便重回该页面,或没有网的情况下,依然能够显示数据。在没有网络的情况,直接从数据库中取数据,没有的话,提示用户没有网络,也没有本地缓存,无法显示数据。图4-3 基本数据处理流程图 网络请求基本数据的方式对于从网络显示数据,该处的数据请求采用的是第三方提供的 Afinal 的HTTPPost请求方式,请求JSON数据。服务器成功返回数据后,采用调用 JSON 数据解析函数,解析 JSON 数据为本地可用的数据。并显示给用户。如图4-4所示,手机向服务器发送Json数据请求后,服务器给用户返回相应的Json数据。手机得到服务器返回的Json数据后,根据请求的Json数据类型的不同,将数据传给不同的Json解析器,Json解析器将数据进行解析完成后,一方面,将数据返回给调用Json解析的函数,进行进一步的信息处理(例如:数据的现实),另一方面,将数据保存一份到缓存,该软件用SQLite缓存的数据,所以这里是将数据放入数据库。为了处理更多的数据,该软件的数据缓存,并不是使用插入语句将数据插入数据库,而是使用替换语句。替换语句与插入语句的不同之处在于,若该条信息在数据库中存在,那么替换原来的数据,若该数据在数据库中没有改条信息,那么将该条信息替换。这样可以减少数据库中数据的重复,提高数据库的利用率。图4-4 网络基本数据的请求与处理4.2.2 图片信息的处理 图片数据的处理流程图4-5 图片数据的请求与处理对于图片的处理,使用了三级缓存的概念,因此图片的处理分为 Lrucache 取数据,内存 Cache 取数据,本地文件取数据,向网络请求图片四种。具体步骤可见图4-5,当程序需要图片数据时,先从lruCache中查找是否存在该图片数据,若存在,则直接从lruCache中提取数据,如不存在,那么从本地内存中查找。若在本地Cache中找到该图片,则将图片返回给需要图片的程序,且将该图片放入LruCache方便下一次的使用。若找不到,那么从本地文件中查找。若在本地文件中找到,那么,将图片返回给需要图片的程序,并且,将图片放入LruCache和本地Cache,若找不到,那么就只能从网络获取数据了。 网络请求图片数据的请求方式对于从网络请求图片,该处的采用的是自己定义的 Http 数据请求函数。URL url = new URL(params0);HttpURLConnection conn = (HttpURLConnection) url.openConnection();InputStream is = conn.getInputStream();Bitmap bitmap = BitmapFactory.decodeStream(is);4.3 数据库设计SQLite数据库是Android手机本地数据保存的另一种形式,可以存储相应的用户信息,也可用于本地数据的缓存。本项目使用SQLite数据库,缓存从网络获得的基本数据。4.3.1 数据库简介SQLite是遵守ACID(Automicity原子性,Consixtency持一致性,Isolation隔离性,Durability持久性)的关系型数据库管理系统,目前已经在很多嵌入式的产品中,得到了应用,在嵌入式的设备中,可能只需要几百K的内存就够了。它能够支持Window/Linux 等等主流的操作系统,同时能够跟多种程序语言相结合使用,比如 Tcl、C#、PHP、JAVA、Android 等,还有ODBC接口,同时比起 Mysql 、 PostgreSQL 这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。因此,Android 智能手机嵌入了SQlite数据库,并且提供了新的API来使用和操作 SQLite 数据库。该项目使用的数据库有两个:分别是 shengname.db 和 mlcx.db 。shengname.db 是放在 res/raw 中随程序一起发布的数据库,该数据库中的 city_name 表,存放的信息是 选择城市界面的相关数据,以及各城市对应的请求数据的代码。在该数据库使用时,我采用的是现将其复制到本地 SDCard 上,然后利用 DbOperator.java 类来对数据库进行数据的读取。Mlcx.db 主要是用于数据的存储,包括缓存数据的存储,以及用户收藏的旅游信息。4.3.2 物理结构设计 shengname.db 的结构表 city_name 属性与字段如表4-1所示:表4-1 城市信息表NameDeclared TypeTypeSizesc_idINTEGERINTEGER0Aidtexttext0Pidtexttext0Firsttexttext0Secondtexttext0Thirdtexttext0texttexttext0City_name 表内容如表4-2表4-2 城市表数据City_name 数据表的操作语句。1 将数据库移至SDCardInputStream is =getResources().openRawResource(R.raw.shengname);if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState() File rootFile = Environment.getExternalStorageDirectory();File dbFile = new File(rootFile, shengname.db);FileOutputStream fos = null;fos = new FileOutputStream(dbFile);byte b = new byte1024;int len = 0;while (len = is.read(b) != -1) fos.write(b, 0, len);2 检索数据并按First,Second,Third,text排序String sql = select * from city_table order by First,Second,Third;3 对该city_name据表进行检索/按城市名的首字母进行检索并排序sql = select * from city_table where CityName = ? order by First,Second,Third;/按城市的全名检索并排序sql = select * from city_table where First = ? order by First,Second,Third; 对 mlcx.db 数据库的操作包括表的创建,我中数据的替换,检索。1 建表语句/建立item信息表。该表是 简单信息显示项的内容String sql = create table items(comment varchar(30), star varchar(30),id varchar(30) primary key, image varchar(30), name varchar(50),lon varchar(30),lat varchar(30), visited varchar(30), kind varchar(30),srcurl varchar(30),tag varchar(30);/建立信息点击的保存表 。该表对应的是详细信息界面显示的数据String sql2 = create table infos(id varchar(30) primary key);/建立收藏列表,该表是收藏信息表中的数据,与 items 完全相同,用户点击收藏收藏的是 items 表对应的数据,将其放到 collections 表中。String sql3 = create table collections(comment varchar(30), star varchar(30), id varchar(30) primary key, image varchar(30), name varchar(50), lon varchar(30), lat varchar(30), visited varchar(30), kind varchar(30),srcurl varchar(30),tag varchar(30);2 数据的替换查询语句String sql = replace into items(comment, star, id, image, name, lon, lat, visited, kind, srcurl,tag)values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?); ;其他两个表中的查询、替换信息等操作与此类似。3 表间信息对应关系:Items 表中的数据 Id 和 Infos 表中的数据 ID是相同的。5. UI界面设计部分5.1 首界面的设计 图5-1 首界面 图5-2 主页界面首界面(如图5-1)的设计采用的是一个简单的属性动画,包括图片透明度的改变,和文字的显示。Android提供的视图动画,只让View对象具有动画效果的能力,因此想要非View对象具有动画效果,就得自己实现动画效果的代码。因为属性动画可以结合 XML 文件设计,设计比较简单,而且效果又好,所以我选择采用属性动画来实现该界面。5.2 主菜单界面主菜单页面包括四个Fragment,分别是图5-2主页界面、图5-3附近页面、图5-4搜索页面、图5-5更多界面。如图5-2所示最下面菜单栏是一个 RadioGroup 组件,通过drawable 设置了RadioButton的点击显示效果,以及背景图片信息。让面的主界面部分是一个 ViewPager 组件,填充的内容是Fragment 组件。通过RadioGroup 的setOnItemChangedListener() 和ViewPager的setOnPageChangedListener的监听事件,实现了Radiogroup的选择可以切换ViewPager中显示的Fragment的效果,和viewPager的滑动改变RadioGroup的选中项的效果,让两个组件成功的结合。5.2.1 主页界面主页界面如图5-2所示,主要是一个GridView组件(图片参考上图)显示各种分类信息,用户可以点击不同的模块进入相关类别的信息显示界面。5.2.2 附近界面 图5-3 附近界面该界面和简略信息显示界面相同,布局主要采用的是一个带上来刷新,下拉加载的 ListView 组件,每一个item的布局是TextView 、ImageView 和 RatingBar 组件的结合。右面的图为点击地图后显示的地图界面,可以再文本框中输入要查找的兴趣点儿进行查找,该输入框是一个带有自动提示功能的 AutoCompleteTextView 组件。可以点击相关的检索信息以减少用户的输入数据量。点击开始搜索,就会在地图上显示相应的检索到的数据,单击地图上的小蓝点,可以查看该区域对应位置的名称。该界面会根据手机的位置,自动检索该地区周边的景点,然后将数据显示给用户。5.2.3 搜索界面图5-4 搜索界面该界面,顶上是一个EditTextView组件,用来接收用户的输入,下面是利用代码动态添加的Button,点击每一个Button也同样可以跳转到相应的简略信息界面。但是由于接口的问题,该页面的搜索功能没有完全实现,但是实现了输入数据完成点击回车键,将软件盘隐藏的效果。若是在接口没有问题的情况下,用户数据输入完成,单击 Enter 键是能够跳到相关数据显示的简略信息显示界面。5.2.4 更多界面 图5-5 更多界面该界面主要是设计一些个软件的记录,缓存的处理等信息的界面,包括“我的收藏”,“历史记录”,“清除缓存”三个部分。“清除缓存”点击的效果是将缓存的图片,以及数据库中缓存的数据清除。5.2.5 城市选择界面 图5-6 城市选择界面 图5-7 简单信息显示界面城市选择界面如图5-6所示,该界面城市部分的显示是一个ListView组件,右面的 字母表是一个自定义的组件,手指触目该组件的字母,字母会变颜色,并且通过监听器,将 listView 定位到相应的信息显示处。最上面是一个 EditText 组件,可以接收用户的输入信息,可以按单个字母查询,也可以按城市的全称查询,数据的数据查询不到时,使用 Toast 组件告诉用户该信息不存在。5.3 信息显示界面主要是相关信息的显示界面。分为:简单信息介绍界面如图5-7所示,详细信息界面如图5-8所示,精品路线界面,景区周边界面。5.3.1 简单信息显示界面该界面和附近界面的效果相同,主体是一个带下拉刷新、上拉加载的 ListView 组件。是根据主题不同而检索出的信息,该界面的标题会因选择的不同而不同。对于主页上的,“农家乐”、“度假村”、“采摘”、“乡村”、“特产”等,以及搜索页面上的“采摘”、“烧烤”、“拓展”等的点击都会进入该界面,并且带有相关信息的显示标题。5.3.2 详细信息界面。 图5-8 详细信息显示界面该界面的主题是一个 WebView 组件,WebView (网络视图)组件是一个能加载显示网页信息的组件,可以将其视为一个浏览器。点击右上角的按钮,会弹出一个 PopupWindow 可以显示收藏和评论信息,点解收藏,可以在“我的收藏”看找到收藏的内容。评论功能,暂时还没能实现,点击电话号码可以跳到电话拨号界面,点击地址可以跳到标记有该景点位置的地图界面,点击周边农家可以打开相应的界面,但是收藏只能收藏点开的第一个WebView显示的界面。5.3.3 精品路线界面精品路线界面如图5-9所示,主体也是一个 ListView 只不过 Item的布局方式 变了一下,单击选项同样可以跳转到详细信息介绍界面。5.3.4 景区周边视图景区周边界面如图5-10所示,该页面的主体也是一个换了 Item 布局的 ListView 。点击相应的选项应该时能跳到相关的详细信息介绍界面的,但是由于解析的数据的URL的问题,该跳转并未成功实现。 图5-9 精品路线界面图 5-10 景区周边界面6. 数据的处理6.1 网络数据的获取和处理该项目采用的是客户端向服务器发送请求,让后服务器将信息以 JSON 数据的形式返回给客户端,然后客户端对服务器返回的数据进行 json 解析,将数据整合,显示给用户。6.1.1 数据的加载的处理 数据的网络请求过程,主要是考虑到代码的可重用和类间的集成关系,定义了一个网络数据请求的父类,并且利用毁掉机制处理网络请求后的数据。 在该项目中,采用了将向网络请求数据的操作写在了一个BaseActivity类中,然后让所有设计网络数据请求的类继承BaseActivity,而不是直接继承Activity,这样子类可以直接继承父类的方法并使用,避免每次数据请求时都必须重新编写的麻烦,通过这种方式编写代码还体现了面向对象的思想。对于请求下来的不同数据,由于处理方式根据数据的不同也不同,所以利用回调机制在,让每一个请求数据的Activity类,实现该接口,实现的数据的不同处理。public interface LoadInterface public void onProcessLoad();public void onErrorLoad();public void onSuccessLoad(Object t,String tag);public void process();6.1.2 向服务器发送信息请求 向服务器的信息请求,我采用了两种形式,其一 ,使用了Afinal 框架的 HTTP 数据请求框架,获取相应URL的JSON数据,然后利用回调机制,处理数据的请求结果。其二,对于图片的下载,使用的是自己定义的 HTTP 请求。URL url = new URL(params0);HttpURLConnection conn = (HttpURLConnection) url.openConnection();InputStream is = conn.getInputStream();Bitmap bitmap = BitmapFactory.decodeStream(is);6.2 数据的缓存数据的缓存处理是出于对于没网情况

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论