毕业设计.docx
- 文档编号:7908856
- 上传时间:2023-05-12
- 格式:DOCX
- 页数:39
- 大小:1.09MB
毕业设计.docx
《毕业设计.docx》由会员分享,可在线阅读,更多相关《毕业设计.docx(39页珍藏版)》请在冰点文库上搜索。
毕业设计
毕业设计(论文)
设计(论文)题目旅游日记之创建相册的设计与实现
学院电信工程学院
教学系计算机技术系
班级11软件技术
姓名杨涛
指导教师赵妍
2014年4月
摘要//不用加粗
Android系统是Google开发的一款开源移动OS,Android中文名被国内用户俗称“安卓”。
Android操作系统基于Linux内核设计,使用了Google公司自己开发的DalvikJava虚拟机。
Android操作系统已经成为全球最大的智能手机操作系统。
随着人们生活水平的提高,对于美好事物的追求也越来越高了。
同时也希望可以把自己的一些感受分享给自己的朋友,但是原始的照相机已经远远不能满足我们即拍即分享的心情了。
同时手机行业随着硬件水平的提高,在拍照等功能上已经于相机没有多大区别了。
本课题就是针对移动应用开发流行趋势,开发了一款基于Android平台的图片处理软件。
本课题是一款为自驾游导航,拍照,记录和共享功能的Android应用程序。
独特记录界面风格和样式,能让你彷佛在浏览记忆相册一般,回顾的自己旅行的历程。
让你记录出行度假的经验与你的朋友和家人分享,并分享你当时的心情,好像他们亲身经历过一样。
《旅游日记》为旅游发烧友打造一款集GPS导航、旅游路线的分享与评论、景点相册分享,经典路线收藏,具备社区交流与服务功能。
【关键字】:
GPS导航、图片分享、Android平台
旅游日记之查看路线和添加评论的设计与实现
1绪论//居中
1.1课题背景
随着人们生活水平的提高,对于美好事物的追求也越来越高了。
同时也希望可以把自己的一些感受分享给自己的朋友,但是原始的照相机已经远远不能满足我们即拍即分享的心情了。
同时手机行业随着硬件水平的提高,在拍照等功能上已经与相机没有多大区别了。
然而这个时候很多年轻人,就选择利用手机这个移动设备进行分享心情,随着移动论坛留言的出现,手机设备已经基本可以满足年轻人的需求了。
但是随着网络的发展,SNS社区的出现。
大家对图片的分享要求不断提高,这个就需要大家可以再手机拍完照之后,可以及时的将照片分享到SNS社区上。
然而现在大家面对同样一个问题,照完照片还需要登录SNS社区,才能进行分享。
然而我们这款软件则解决了这个问题,将拍照与分享相结合,大大满足了年轻人的及时分享需求。
1.2课题研究的目的和意义
在手机飞速发展的今天,手机已成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。
如今手机上发布信息主要是通过网络来实现的,而主要的分享形式以图片为主。
因此图片分享在手机上的地位显而易见,它已成为手机信息传递的重要实现方式,从而倍受人们的重视。
本课题是一款为自驾游导航,拍照,记录和共享功能的Android应用程序。
独特记录界面风格和样式,能让你彷佛在浏览记忆相册一般,回顾的自己旅行的历程。
让你记录出行度假的经验与你的朋友和家人分享,并分享你当时的心情,好像他们亲身经历过一样。
1.3论文主要内容
本课题实现了图片分享、路线查询、及增添评论软件的开发,包括分享大厅、路线查询、创建相册、添加相片、编辑相片、分享相册、创建我的相册、添加收藏、添加评论等内容。
用户从服务器上发现图片并分享,用户可以浏览分享过的图片以及收藏过的图片。
可以将图片分享到第三方SNS社区。
分享大厅:
登录服务器浏览服务器上所有自驾游路线,并浏览路线某一上的景点的相册。
搜索路线:
为你寻找一条适合的导航路线。
创建相册:
在路线上添加相册,保存下你在这条路线照的相片。
添加相片:
通过拍照或访问本地文件,添加照片至相册。
编辑相片:
添加心情短语,旋转、裁剪、分享相片。
分享相册:
通过上传分享,旅游路线的景点照片。
创建我的路线:
可以查看到所有用户已上传的路线。
添加收藏:
收藏用户所有感兴趣路线。
添加评论:
分享的路线和相片可以进行评论。
本论文主要实现的是创建相册的设计与实现功能。
2旅游日记软件的解决方案
2.1系统相关技术//项目编号也要黑体
2.1.1Android简介//三级标题:
小四号黑体居左
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
Android操作系统最初由AndyRubin开发,主要支持手机。
2005年8月由Google收购注资。
2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。
随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
第一部Android智能手机发布于2008年10月。
Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。
Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。
它们通过Android应用程序框架为开发者提供服务。
以下是一些核心库:
图2-1Android应用程序框架图
系统C库:
一个从BSD继承来的标准C系统函数库(libc),它是专门为基于embeddedlinux的设备定制的。
媒体库:
基于PacketVideoOpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。
编码格式包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG。
SurfaceManager:
对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。
LibWebCore:
一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。
2.1.2AndroidSDK
SDK:
(SoftwareDevelopmentKit)软件开发工具包。
被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
因此,AndroidSDK指的既是Android专属的软件开发工具包。
与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。
Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。
使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/
SharedPreferences,它是Android提供用来存储一些简单的配置信息的一种机制,例如,一些默认欢迎语、登录的用户名和密码等。
2.1.3瀑布流图片显示方式
该方式是在页面中多个图片进行缩略图显示时候保持图片高宽缩放显示,并且在页面滚动自动在底部加载更多的图片
采用该显示方式比较著名的网站有:
(1)国外的Pinterest(
(2)国内的花瓣(
实现步骤:
(1)根据屏幕宽度计算需要显示的列数;
(2)为每列创建ArrayList
(3)根据服务器返回的缩列图及相关信息的构造LinearLayout布局
(4)计算每列当前的高度,找到最低的那列,并将在(3)中创建的LinearLayout布局添加到该列
(5)实现滚动事件,判断滚动到底部的时候,触发加载下一页数据,并重复(3)和(4)步骤。
2.1.4图片缓存
项目中需要进行大量的图片浏览和图片编辑,因此会涉及到图片的缓存和释放的问题,如果一旦处理不好,容易造成内存溢出程序崩溃,主要解决办法是在BaseCommond类中声明了
WeakHashMap
WeakHashMap
(1)采用缓存机制,图片显示会更快,也能减少重复创建Bitmap对象造成资源浪费
(2)及时地调用recycle方法有效地释放不再使用的Bitmap对象
(3)采用WeakReference应用弱引用类,我们平常用的都是对象的强引用,如果有强引用存在,当系统内存不做的时候,即使调用了System.gc()方法,GC是不会回收对象的。
而采用弱引用则可以在同时保持对对象的引用,而又可以让GC需要的时候回收这个对象。
2.1.5网络功能模块
(1)直接使用了AndroidSDK中自带的HttpClient,它是android集成HttpClient开源项目。
(2)在简单的仅供显示的数据请求中使用的是GET方式,在图片上传和发表评论的时候采用的POST方式
(3)网络请求是一个比较耗时的操作,一般不会将网络操作放在UI线程中,否则容易造成假死(这个过程中无法对程序进行交互操作),因此在这个项目中,使用新建子线程来请求网络处理,在得到返回数据后,再通过消息(Message)和句柄(Handler)来通知UI线程显示或操作。
(4)主要涉及到的类位于包com.jw.http下面。
2.2开发环境配置
2.2.1硬件环境
CPU:
2.26GHz
内存:
2.0GB
显卡:
GeForce5200
IE浏览器8分辨率:
1280*800
2.2.2运行环境:
客户端:
WindowsXP,IE5.0以上
服务器端:
Tomcat6.0。
开发环境:
EclipseVersion3.6.1
AndroidSDK4.0
ADT
数据库:
MySQL。
3系统总体设计
3.1系统设计分析
3.1.1系统框架
图3-1系统框架图
3.1.2旅游日记系统简介
该手机旅游日记系统是基于Android开发的,以记录自己的美好旅途为目标,启动模块,线路模块、本地分享模块、网络分享模块、个人中心模块五大模块组成。
启动模块:
主要是系统加载程序时,执行的模块。
线路模块:
主要是查询路线及地图浏览。
本地分享模块:
主要是本体图片的一些处理,以及分享到人人网等第三软件。
网络分享模块:
完成的是网络上的图片进项收藏、留言、以及分享等功能。
个人中心模块:
是在网络模块的基础上,对自己的旅游路线和收藏的图片及评论进行一定的记录共我们下次浏览。
3.1.3设计原则
软件系统开发设计原则一般包括以下四个方面:
(1)经济,实用的原则;
(2)兼容性原则;
(3)可靠,有效性原则;
(4)安全性原则。
3.2系统需求分析
启动模块:
功能主要是加载欢迎页面,缓存数据。
为整个程序的打开做准备。
线路模块:
主要是查询路线及地图浏览。
本地分享模块:
具有浏览本地图片,图片的分享到人人网等第三软件。
网络分享模块:
完成的是网络上的图片进行收藏、留言、以及分享等功能。
个人中心模块:
是在网络模块的基础上,对自己分享和收藏的图片。
进行一定的记录共我们下次浏览。
表3-1旅游日记软件功能
主页
热点线路
用户注册
用户登录
个人信息管理
路线收藏
个人路线
路线查询
图片分享
图片评论
图片编辑
3.3内部接口设计
各模块间的功能比较独立,在程序逻辑上没有联系。
而各模块间的数据联系主要通过访问数据库接口。
对于一些公用函数、用户对象和窗口,提供调用接口说明。
3.4外部接口设计
主要用到的外部接口有AndroidSDK、MySQL、标准XML、标准的HTTP的GET和POST方式发送。
详细的接口设计有以下方式:
1)和Android操作系统的接口主要通过AndroidSDK函数实现;
2)和MySQL的接口通过PHP支持的SQL语句实现;
3)服务器向客户端发送数据,以标准的XML作为数据接口;
4)客户端向服务器发送数据,以标准的HTTP的GET和POST方式发送
3.5系统功能设计
3.5.1启动界面
当软件打开时,显示启动界面3-5秒,然后自动进入软件主界面。
在主界面上显示软件logo、名称。
3.5.2线路搜索
系统提供三个热点旅游路线(最新、最热、精彩)。
当用户进入主界面时,可以点击选取最新、最热和精彩的旅游路线。
点击中间“+”时,可以添加自己喜欢的路线。
3.5.3用户管理
用户点击主界面的右上角的图标,首先判断是否登录,如果已经登陆则显示个人中心,否则点击左上角进入用户登陆界面。
如果没有登录则首先对用户输入的用户名和密码进行有效性验证,然后将用户名和密码提交远程服务器进行校验。
对服务器返回的信息进行处理,成功则进入个人中心界面,否则提示用户失败原因。
如果用户没有账户,则要点击注册,首先对用户输入的用户名、电子邮箱和两次密码确认进行有效性验证。
然后将用户名、电子邮箱和密码提交远程服务器进行注册。
对服务器返回的信息进行处理,成功则进入个人中心界面,否则提示用户失败原因。
最后进入个人中心,显示我的路线及我的相册、显示我的收藏、显示我的评论。
3.5.4个人中心
登陆成功后可以进入个人中心界面,在该界面有个人路线、个人相册、个人收藏、个人评论及用户切换。
个人路线是自己添加的路线,相册是旅游拍下的相片,收藏是在主界面所收藏的喜爱的路线,这些都可以进行人人网、开心网、腾讯微博以及新浪微博等图片分享。
3.5.5本地相册
第一次使用软件的时候,扫描SD卡,对图片进行缩略,并保存在缓冲区,以利用软件显示及操作的响应时间。
当进入相册的本地界面时,图片会以伪3D的效果显示出来。
当我们点击图片时图片会放大,让后我们可以实现图片的修改、装饰、裁剪、分享、等功能。
3.5.6拍照
调用系统摄像头进行拍照,拍照后提示用户是否保存,不保存则继续,否则保存为本地图片并进入图片分享及发布界面。
4数据结构设计
旅游日记分为服务器端和客户端两大部分,总体的架构图如图1所示。
客户端通过服务器端定义的API接口交换数据。
针对移动互联应用程序我们有多个客户端,每个客户端都遵循同样的规则调用服务器提供的接口,获取和提交数据。
服务器端接受到请求之后,根据每个请求的从DB中获取数据,或者将请求存入DB中。
图4-1产品技术架构
4.1表服务器端技术实现方案
4.1.1服务器端接口设计
服务器端的数据主要包括get请求参数,返回json数据结构,以及用户的所有信息
表1服务器端接口表
接口名
分项
字段1
说明
备注
示例
路线信息
请求地址
routedetail.php
GET请求方式
请求参数
uid
用户编号
整型
id
路线编号
整型
返回JSON
ret
返回结果
0:
失败
1:
成功
{"ret":
"1","tip":
"","comments_items":
[{"id":
1,"title":
""},{}]}
tip
成功/失败提示
结果提示消息
title
标题
字符串,需url编码
baddress
开始地址
字符串,需url编码
eaddress
结束地址
字符串,需url编码
pubdate
发布时间
字符串
thumb
缩略图url地址
字符串
comments_items
用户编号
整型
用户头像
整型
评论内容
字符串,需url编码
用户昵称
字符串,需url编码
评论时间
字符串
4.1.2数据表定义
表2上传数据表
标识符
类型
是否为空
备注
id
int
否
相片编号
themeid
int
否
路线编号
uid
int
否
上传用户编号
url
varchar(100)
否
相片地址
w
int
否
相片宽度
h
int
否
相片高度
lasttime
datetime
否
发表评论时间
4.2客户端技术实现方案
客户端实现存储数据,需要保持用户创建的路线名称、路径、相册主题、心情、背景音乐、皮肤等信息。
各个窗体进行数据交互和跳转。
4.2.1数据表设计
表3日记表信息表
标识符
类型
是否为空
备注
route
varnchar(20)
否
路径名称
path
varnchar(500)
否
路径
zhuti
varnchar(50)
否
相册主题
xinqing
varnchar(20)
否
心情
yinyue
int
否
背景音乐
bg
int
否
皮肤
4.2.2窗体类的数据交互
系统各个Activity之间的数据交互,实现窗体的跳转,设计的系统流程图如下图所示。
图4-2系统流程设计
5数据结构设计
5.1内部接口设计
各模块间的功能比较独立,在程序逻辑上没有联系。
而各模块间的数据联系主要通过访问数据库接口。
对于一些公用函数、用户对象和窗口,提供调用接口说明。
5.2外部接口设计
主要用到的外部接口有AndroidSDK、MySQL、标准XML、标准的HTTP的GET和POST方式发送。
详细的接口设计有以下方式:
1)和Android操作系统的接口主要通过AndroidSDK函数实现;
2)和MySQL的接口通过PHP支持的SQL语句实现;
3)服务器向客户端发送数据,以标准的XML作为数据接口;
4)客户端向服务器发送数据,以标准的HTTP的GET和POST方式发送
5.3系统维护设计
系统进行了三种系统维护方法,即码表维护、基础数据维护、数据库的备份和恢复。
1)码表维护
对于所有的码表统一用一个模块维护,要求所有的码表数据表的字段又统一的格式
2)基础数据维护
对于一些基础数据,用一个基础数据维护模块来维护。
3)数据库的备份和恢复
利用MySQL自身提供的功能实现
6模块功能设计及实现
我所负责的相册的创建与实现。
6.1相册的创建
6.1.1界面设计
当用户创建完路线时,就会提醒是否创建相册。
如图5-1所示:
图5-1主界面
6.1.2界面实现
1)创建相册界面的主要代码
xmlversion="1.0"encoding="utf-8"?
>
xmlns: android=" android: orientation="vertical" android: layout_width="fill_parent" android: layout_height="fill_parent"android: weightSum="1" android: background="@drawable/myroutebg" android: id="@+id/layout" > android: layout_width="fill_parent" android: layout_height="wrap_content" > android: layout_width="fill_parent" android: layout_height="wrap_content" android: id="@+id/tv" android: gravity="center" android: text="创建相册" android: textColor="#854a2a" android: textSize="20dip" android: background="@drawable/top" /> android: id="@+id/iconback" android: layout_width="wrap_content" android: layout_height="wrap_content" android: background="@drawable/iconbackshowroute" android: layout_gravity="center_vertical|left" android: layout_marginLeft="15dip" /> android: id="@+id/linearLayout_focus" android: focusable="true" android: focusableInTouchMode="true" android: layout_width="0px" android: layout_height="0px"/> android: id="@+id/etzhuti"android: focusable="true"android: focusableInTouchMode="true" android: layout_width="414px" android: layout_gravity="center_horizontal" android: layout_height="50dip" android: layout_marginTop="15dip" android: background="@drawable/edittextbg" android: hint="请输入主题名称" android: gravity="center" android: textColor="#390505" /> android: id="@+id/etadress"android: focusable="true"android: focusableInTouchMode="true" android: layout_width="414px" android: background="@drawable/edittextbg" android: layout_gravity="center_horizontal" android: layout_marginTop="10dip" android: gravity="center" android: hint="请输入照片地址" android: textColor="#390505" android: layout_hei
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计