当前位置:   article > 正文

安卓课设<<云游APP>>

安卓课设


引言

对于安卓的课程设计,自主选题设计,我的选题是做一款关于旅游的APP取名为《云游APP》。

《云游APP》项目框架搭建

MVVM(Model-View-ViewModel)是一种高级项目架构模式,目前已被广泛应用在Android 程序设计领域,类似的架构模式还有MVP、MVC等。简单来讲,MVVM架构可以将程序结构主要分成3部分:Model是数据模型部分;View是界面展示部分;而ViewModel比较特殊,可以将它理解成一个连接数据模型和界面展示的桥梁,从而实现让业务逻辑和界面展示分离的程序结构设计,其中MVVM项目架构如图1所示。
在这里插入图片描述在MVVM项目架构示意图中所有的箭头都是单向的,比方说UI 控制层指向了ViewModel层,表示UI控制层会持有ViewModel层的引用,但是反过来 ViewModel层却不能持有UI控制层的引用,其他几层也是一样的道理。除此之外,引用也不能跨层持有,比如UI控制层不能持有仓库层的引用,每一层的组件都只能与它相邻层的组件进行交互。

《云游APP》功能需求分析

云游用户信息功能需求

首先是对云游APP的用户信息功能分析,云游APP是面向用户的。所以APP需要实现用户信息的保障,也就是用户的登录与注册。如果是新用户,则首先需要进行新用户注册,然后通过账号与密码进行登录,已注册用户则可直接通过账号与密码进行登录。

云游主页功能需求

在云游主页中,需要实现的主要功能有热门风景照的展播,旅游信息的查询,旅游热门景点的推荐。在风景照的展播中需要实现自动图片的自动轮播;在旅游信息的查询中,需要APP可以为用户提供各地的景点、周边酒店、相关攻略等信息;在热门景点推荐中,云游APP需要向用户展示热门景点的图片以及地理位置等信息。然后在主页中合理布局三者,以实现不错的UI效果。

云游用户足迹功能需求

云游APP的用户足迹页的设计构想是用户可以以多样的方式将自己去过的旅游地点记录下来,记录的内容可以是某次行程的具体信息、个人心情以及旅游风景照。在效果上类似于翻阅新旧相册,同时查找定位出某个去过的旅游地点。此外,用户还应可以对旅游地点的相关信息进行修改。这部分功能可概括为用户旅游足迹信息的增、删、改、查这四部分功能。

云游搜索功能需求

云游APP的搜索功能主要用于满足用户网页内容搜索的需求,这部分是为了拓展云游APP功能,用户可以在这部分通过网页搜索的形式查询相关的旅游信息。

云游个人中心功能需求

云游APP的个人中心为用户提供了用户个人头像设置,用户个人信息显示、用户个人信息修改以及退出登录等功能。这用户个人中心中,用户对于个人头像的设置有两种方式,一种是打开手机相机,实现拍照;另一种是通过打开自己的手机相册,选择相应的图片作为头像。

《云游APP》技术可行性分析

云游APP信息存储方式

云游APP根据设计功能需求,需要对用户信息、旅游足迹等信息、热门景点信息进行存储。其中,旅游足迹信息包括了旅游地点、所在城市、旅游时间、旅游心情、旅游备注、旅游风景照六部分。对于旅游足迹信息的存储方式可以使用轻量级的关系数据库——SQLite数据库。SQLite运算速度快,占用资源少,可存储大量复杂的关系型数据,因此,云游APP可采用SQLite对用户信息、旅游足迹信息进行存储。

云游APP的UI设计

在云游APP的UI整体框架设计中,在主页的热门景点推荐,旅游足迹相册式展示的设计中都用了RecyclerView。RecyclerView滚动控件可以为云游APP提供更为丰富的信息展现方式,在热门景点设计中,可以通过RecyclerView的纵向滚动功能实现热门景点信息的纵向滑动查看;在旅游足迹展示方式设计中,可以通过RecyclerView的横向滚动功能实现旅游足迹信息的横向滑动查看。
在云游APP的整体UI框架采用了碎片——Fragment。 我们可以把屏幕划分成几块,然后进行分组,进行一个模块化的管理,从而可以更加方便地在运行过程中动态地更新Activity的用户界面。在云游APP的设计中有四个Fragment,分别主页Frangment、足迹Fragment、搜索Fragment与个人中心Fragment。通过这四个Fragment的使用,我们便可以在其对应的布局文件中设计各自的UI界面,以达到期望的实现效果。

云游APP的网络连接

根据功能需求设计,云游APP需要与互联网网络相连接,以满足与丰富用户的体验感。如果用户在使用云游APP的过程中不能上网,这会极大地降低用户使用的体验感。所以,在具体功能设计中,在主页界面,用户可通过相关链接跳转到相应的网页;此外,在搜索页,可以通过WebView加载百度的搜索网页,以满足用户更多旅游信息的检索,这同样是对云游APP的功能丰富。

《云游APP》技术难点及实现

碎片Fragment的理解与运用

Fragment实现云游底部导航栏

在用户成功注册并登录后,就会进入云游APP的主界面。在主界面设计中,采用底部导航栏的方式,将主界面功能划分为主页界面、足迹界面、搜索界面以及个人中心界面,这样便极大地拓展了云游APP的功能。底部导航栏的实现采用Fragment与RadioGroup+RadioButton的组合方式,以实现底部导航栏的效果。
首先需要准备四组RadioButton按下与未按下的效果图,放入图片Drawable资源中,并编写相应的xml程序。然后是layout页面布局的设计,其中使用到了RadioGroup与RadioButton控件,并设置相应的参数,此外,还需添加Fragment布局,并设置其ID号。
这样便完成了页面布局设计,接下来需要建立四个Fragment类,分别为MainFragment、FootFragemt、ForwardFragment与PersonFragment,此外,还需要建立四个与之相对应的Layout布局文件。因为Fragment并不能单独使用,他需要嵌套在Activity 中使用,尽管他拥有自己的生命周期,但是还是会受到宿主Activity的生命周期的影响。所以我们在MainActivity中对四个Fragment进行管理,主要是通过检测单选按钮的状态来切换到不同的Fragment以及对应的layout布局页面,其中借助了FragmentManager来管理四个Fragment的使用。

Fragment与Activity的信息交互

Activity传递数据给Fragment,其大致过程如下,在Activity中创建Bundle数据包,调用Fragment实例的setArguments(bundle) 从而将Bundle数据包传给Fragment,然后Fragment中调用getArguments获得 Bundle对象,然后进行解析。
Fragment传递数据给Activity,其大致过程如下,在Fragment中定义一个内部回调接口,再让包含该Fragment的Activity实现该回调接口, Fragment就可以通过回调接口传数据。

RecyclerView的理解与运用

RecyclerView主要用在主页的旅游景点推荐与旅游足迹信息的展示中使用,首先需要在布局文件中加入RecyclerView控件,然后需要设计相应的适配器,在云游APP中他们为SpotAdapter与FootAdapter,然后重写继承RecyclerView.adapter的三个方法,其中包括了RecyclerView对应子布局的控件绑定等步骤,RecyclerView子布局与适配器相连接,然后设置RecyclerView的滑动效果,最后调用相关方法实现。
在旅游足迹信息修改功能实现时,需要实现单击相应旅游足迹信息并跳转到信息修改页面,这部分功能的实现过程如下,通过适配器的onBindViewHolder函数中添加单击的响应事件,在其中使用Intent完成页面的跳转。

旅行风景图片的上传与存储

在云游APP中图片的上传与存储也是一大技术难点,在旅游足迹信息需要用户上传旅行地点的风景照,在个人中心里需要用户设置个人头像。旅游足迹信息的旅行图片
上传会打开手机的系统相册,用户可通过选择相应的图片,然后通过旅游信息添加功能,图片将被自动保存在SQLite数据库中,而对于个人中心中的头像设置则是采用SharedPreferences存储技术实现的。
图片不能直接在数据库中存储,需要先对图片进行base64编码,将一副图片数据编码成一串字符串,使用该字符串代替图像地址,同时需要将Sqlite数据库中的存储类型设置为BLOB类型。而在需要图片显示时,再将该字符串转变为图片形式。
除了使用SQLite数据库外,还可以使用SharedPreferences来保存图片数据,保存的形式同样是图片经过base64编码后的字符串。而在需要图片显示时,再将该字符串转变为图片形式。

《云游APP》设计效果

用户注册页面

在这里插入图片描述

用户登录页面

登录界面

主页界面

在这里插入图片描述

足迹界面

在这里插入图片描述

用户界面

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/586846
推荐阅读
相关标签
  

闽ICP备14008679号