Android应用开发设计实验报告-智能相册.doc_第1页
Android应用开发设计实验报告-智能相册.doc_第2页
Android应用开发设计实验报告-智能相册.doc_第3页
Android应用开发设计实验报告-智能相册.doc_第4页
Android应用开发设计实验报告-智能相册.doc_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

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

文档简介

Android应用开发总结报告智能相册姓名学号任务分配任正辉13081326整体规划和大部分代码邢玉轩13081342代码修改,查阅资料,布局设计吕冰洁13081327部分代码改写,实验报告目录 一 需求分析-2二 系统架构描述-2三 程序设计与系统实现-4四 源码设计与分析-8五 运行结果展示-14六 总结-22一、需求分析 Android是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。本着理论与实践相结合的思想,将平时课堂课下学习的编程知识与计算机理论应用到实际项目中,积累实践经验,学院给我们将要毕业的学生安排了本次实习,学习IT界比较前沿的技术。自动化、网络化和社会阶段,在日常生活中,照片给人们留下难忘永恒的记忆,如何珍藏这些永久的记忆呢?时间一长或稍有不小心,照片就会损坏,还有随着时间流逝照片会发黄、褪色、甚至发霉,这便失去的照片本有的色泽和观赏性。快速发展的多媒体技术给你提供了一个更好的保存方式智能相册!它具有传统相册无法相媲美的优越性。我们追求也是人民时尚生活的一种体现。给以后的生活多留一点回忆,让以后的人生道路回味无穷。这是一件很有必要的事,那就让我们在接下来的文字当中着重介绍一下智能相册的完成过程吧。二、系统架构描述 Android智能相册本着对捕获的图片进行存储、删除、处理等操作目的,所以在进行智能相册设计与实现的过程中难免会用到各种Activity之间的跳转、传值跳转,Button/ImageView/Gallery/ImageSwitcher等视图的使用和线性、绝对、相对布局对界面进行布局。这里各Activity之间的跳转关系十分重要,必须清晰地弄清楚,以免跳转和关闭出错。这里给出各Activity之间跳转图如下: 图 1 最终设计完整智能相册Activity图 整个工程架构如下:Activity(.java)文件:对LAYOUT进行编辑/控制等操作。存放本地图片文件,不同文件夹存放不同像素的图片文件。每新建一个.java文件都须在这里添加,也用于修改权限,如camera权限/read_write允许权限等。布局文件(.xml)文件:可在视图截面编写也可直接编xml文件三、程序设计与系统实现 设计与实现大体思路:根据功能划分模块构思各个模块之的间联系及跳转方式对每个模块进行布局设计对应LAYOUT设计Activity即.java文件代码设计代码及布局完善界面完善整理与总结。详细设计如下: 1、功能需求分析 设计一个简单智能相册完成图片的浏览及简单操作处理要求如下: (1)对本地文件进行画廊展示; (2)对本地文件进行全屏展示; (3)扫描SDCARD中的图片,完成遍历操作,图片全放在根目录下; (4)对SDCARD中的图片进行画廊展示; (5)对SDCADRD中的图片全屏展示; (6)对本地文件进行网格展示,点击网格中的小图片放大显示; (7)对SDCARD中的图片进行2D处理,如放大、缩小、旋转等处理并保存; (8)拓展功能:拍照。拍摄照片并保存在SDCARD中。 2、模块划分 按功能及在整个程序运行时扮演的角色的不同可整体划分为以下模块:系统主界面与本地资源文件相关处理与SDCARD文件相关处理拍照功能退出界面 (1)模块间跳转系统主界面(模块0)与本地文件有关处理(模块1)与SD卡文件有关处理(模块2)拍照功能(模块3)退出界面(模块4)网格(子模块11)全屏(子模块12)编辑(子模块21)全屏(子模块22) (各模块间跳转关系) 3、布局该项工程中有11个.java文件,9个.xml文件,基本上每个活动对应一个布局文件,设计中为了方便和节省代码编写使本地图片画廊展示与SDCAD中图片画廊展示共用了一个布局文件,而由网格展示点击小图片放大显示,可直接跳转到本地图片全屏显示,这里用到传值跳转。下面介绍各布局:(1)主界面布局main.xml:为方便视图的拖动这里用到绝对视图,布局中有ImageView/ProgressBar/ TextView视图ImageView中显示软件标题,TextView引用Value文件中字符串,显示正在读取文件进行程序缓冲。(2)功能介绍界面function.xmlTextView引用Value文件中字符串进行功能介绍及开发小组。在下边为4个功能按钮。 (3)本地和SDCARD图片在同一个画廊布局中展示gallery.xmlGallery显示小图片,在ImageSwitcher中显示大图片。(4)网格展示布局仅为一个GridView参数如下:(5)本地文件全屏显示和SDCARD图片全屏显示设计了两个布局,这里完全可以只为其设计一个供两个活动使用。布局使用一个相对布局,相对布局下添加一个ImageSwitcher显示图片。参数如下:(6)编辑和退出界面的布局相对简单不再介绍。(7)拍照布局相对来说不太熟悉:camera.xml文件为:/这里使用相对布局方便设计 /拍照显示部分使用SrufaceView布局 /以下为两个图片按钮,点击进行拍照和菜单显示操作 四、源码设计与分析代码部分这里不再为每个Activity中的.java文件进行详细介绍。为了能克服各个模块功能的实现以及跳转,介绍以下关键代码部分:1、实现定时界面自动跳转跳转界面之间的跳转用到Intent,可以直接使用API提供的Intent()函数,为其添加参数,也可以不添加参数,再调用intent.setClass(EAlbum.this,function.class);进行跳转。使用Timer.schedule(task,1000*3)表示3秒之后调用task执行run()函数中写入的相关操作。2、实现传值跳转操作在对SDCARD中的图片画廊浏览到某一个图片时想要对该图片进行编辑,单击MENU菜单选择图片编辑直接对图片进行编辑而无需继续从头开始遍历找到要编辑的图片,于是需用到传值跳转。Case 5:中的5指的是itemId,意思是单击该菜单选项执行以下操作。首先找到图片在列表中的位置positions赋给filename进行传送,将要传送的数值进行绑定到data中传送,接着调用Intent()函数进行跳转,调用putExtras()函数进行绑定数据传送。在目标活动中有如下代码进行接收传送过来的数据:调用getExtras()函数接收发送方传过来的数据赋给b,再从b中调用getString或去图片在列表中的位置从而进行编辑操作。3、点击按钮进行活动跳转操作首先定义一个按钮button1,调用findViewById()函数将.java中的变量与.xml中的布局按钮关联起来实现点击界面中按钮完成相应动作。onClick(View v)为点击按钮执行内部已经编写好的操作,上述代码为跳转操作,还可以进行其他操作,点击按钮也可设置为其他触发动作,如鼠标或过,双击等,需要对内部API接口熟悉。 4、菜单编辑调用onCreateOptionsMenu()函数添加菜单与编辑菜单选项。Menu.add()种第二个参数为itenId,使用if或switch进行条件操作时用到。接下来定义一个子菜单subMenu,调用munu.addSubMenu()添加子菜单,其中第二个参数进行相关操作时用到。 5、gallery实现 定义一个iamgeSwitcher显示大图片的窗口。 实现布局文件与代码的关联。设定相簿gallery的监听功能,取得选择到的照片,以大图片的方式显示在imageSwitcher的imageView Widget。 将所有的本地文件中的图片放到一个整形的数组里,数组元素为图片的Id号,对图片进行操作时可直接引用数组中的Id号即可。下面为获取数组中放入的图片的数量和获取图片Id和在数组中的位置的函数,然后设定gallery中小图片的显示,设置相关参数。6、本地图片全屏展示实现 调用相关API设置为全屏方式。 首先设置好全屏显示的第一张图片为res目录下图片资源文件夹中的图片,提示是本地文件中的第0张图片。为ImageSwitcher添加点击事件,点击全屏图片显示下一张图片。用到了两个标志变量isFirsShow和isNext 来实现循环显示,即本地文件中的图片列表中的图片显示完之后又从第0张图片开始显示。下面为showImageSwitcher()函数实现过程: 调用showImageSwitcher()内部API将图片列表中positions位置的图片放到mSwitcher中显示,即全屏显示该图片。7、SDCARD遍历图片并以画廊的方式展示关联布局文件/添加监听事件/设置动画淡入淡出等参数和本地图片画廊展示类似不再详述。唯一不同的地方在于图片显示的方式不同,本地图片调用setImageResourse()函数显示,这里先在SDCARD中找到路径位置,再调用parse()函数显示图片。 调用Environment.getExternalStorageState().equals(Environment. MEDIA_MOUNTED)判断是否出入SDCARD,若没有提示插入SDCARD;设置遍历路径为根目录 /sdcard/,从SDCARD获取图像路径列表并返回。然后调用以上parse()函数进行图片显示。遍历文件之后需筛选出图片格式的文件,若文以.jpg/.JPG/.gif/.GIF/.png/.jpeg /.bmp为后缀,返回true,否则返回false。8、拍照功能和图片编辑功能基本上调用内部API接口,不再详述。9、关于AndroidManifest.xml文件 处为添加的所有创建的Activity,即.java文件的文件名。处为权限允许。允许使用canmera拍照功能和write_external_storage读写允许。五、运行结果展示 1、初始界面: 2、功能选择界面: 3、点击从本地获取图片: 4、点击MENU: 5、全屏显示本地图片并提示是本地文件第几张图片: 6、在功能界面中点击从SDCARD获取图片,若无SDCARD: 7、在功能界面中点击从SDCARD获取图片: 8、上界面中点击MENU出现全屏浏览和图片编辑功能: 9、点击全屏浏览 10、点击图片编辑: 11、点击MENU: 12、点击编辑进行图片编辑: 13、使用方向键编辑后点击MENU保存: 14、返回键返回功能界面点击从摄像图获取照片: 15、点击拍照提示是否保存 16、点击保存后显示保存路径和文件名 17、拍摄时是否水印 18、从功能界面退出程序六、总结 该系统设计过程根据功能划分为几个模块,功能模块之前有个跳转界面进行程序缓冲和软件功能展示界面,然后根据图片来源分为两部分,分别为来自本地文件,本地文件为系统设计时由设计者自行加入的图片文件,用户如若想再添加图片可加入SDCARD中进行浏览和处理等操作,而不能再加入本地文件,除非修改代码中用到的数组,增加数组长度,在数组中添加文件,同时在res文件中将要加入的图片复制进去才能展示;第二部分为来自SDCARD中的图片,这里指定文件的存储位置为SDCARD的根目录下,当然也可以放在其他文件夹中,由于时间的限制设计过程中为了简化没考虑这种情况,本软件不支持该功能,当然也可以为改程序设计一个遍历SDCARD中各文件夹的算法,搜索后缀为.jpg/.png/.gif等图片格式的文件来展示出来;第三部分来自摄像头,本软件提供了拍照功能,用户可为运

温馨提示

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

评论

0/150

提交评论