版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Android的图片管理器设计与实现毕业设计(论文)I毕业设计(论文)基于Android的图片管理器设计与实现基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第1页。
摘要基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第1页。随着智能手机走进普通人的生活,它将成为人们获取信息的主要设备。因此,手机的应用服务将会有很大的发展空间,手机图片管理服务就是其中的一项。Android平台支持各种应用的开发,它是目前最流行的开源智能手机操作系统,最新的版本是android4.2,提供了便捷灵活的开发接口。本课题在AndroidSDK2.2平台下,设计了一个手机图片管理。采用了Android平台的Framework层提供的接口,实现了图片预览、图片动态切换、停止播放等功能,支持jpg,bmp,png和gif图片格式,该程序是独立的apk文件,可以安装在android2.2以上的系统内。它可以让手机成为一个图片管理,用户可以将其放在心仪的地方,来展示美好的图片,而不必再去购买别的设备就能拥有精美的图片管理了。本文开头首先对图片管理软件的研究背景做了简单介绍,其次简述了现今流行的几个手机开发平台,详细介绍了Android开发平台的架构,并描述了Android开发环境的搭建过程;接下来是对系统设计的介绍,本文从对购书比价系统的分析,到数据库的设计,再到系统客户端的实现都做了详细的解说,并把有些细节和技术提出来做单一的解说;紧接着本文描述了此客户端的图片管理软件的测试过程和如何发布此系统。。本设计完成后,能够实现以下功能:图片的浏览、图片属性的修改、图片的一些基本操作。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第2页。关键词:Android;java;图片管理;基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第2页。第1章绪论1.1系统开发背景如今手机就像钥匙一样,是我们出门必带的物品之一。随着科技的迅猛发展,现在的手机都是智能手机,它的功能不仅仅只是用来打电话或是收发短信,我们还可以用它听歌看视频、用蓝牙传输数据、玩游戏、上网等等。据数据资料显示,截至2013年1月我国有8亿手机用户,使用手机上网的用户超过了6亿。基于android平台手机的发展趋势,本设计以android平台手机为核心制作了一个图片浏览器。本次设计运用android平台手机作为研究开发对象,配合Java语言程序设计以及面向对象思想设计了一种手机图片浏览器。本设计完成后,能够实现以下功能:图片的浏览、图片属性的修改、图片的一些基本操作,一些远程模块的调用、根据不同图片扩展名来实现图片只能的打开,同时给以后的一些实用软件留下了借口、可以实现与手机之间的通讯。以及电脑之间的共享。在设计时,按照设计的要求,从可靠性、经济性、安全性三个方面进行考虑,通过设计方案的比较,确定出来一套即经济又可行的方案。本次设计是对所学知识的综合运用,把理论知识和实践相结合。在本次设计与检验过程中遇到了许多实际问题,比如android平台手机及其运行环境的选择,不熟悉myeclipse和eclipse软件的使用方法,不熟悉开发技巧,可能会发生一些微小功能不能实现、软件运行不稳定,如何设计软件的最佳外观效果等。所有的这些问题,我们都通过查阅资料,咨询老师一一解决了,为设计的成功提供了保障。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第3页。本文通过方案确认,介绍了设计中所用到的技术、开发思想,以及android平台的简介,通过清晰的程序流程图,给程序的理解提供了方向。还介绍了程序调试软件和硬件调试软件,最后对本设计的软件做了一个概述。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第3页。1.2国内外研究现状图片管理软件顾名思义,则是用户用于管理图片的软件。目前国内外电子相册繁多,不同的软件,图片管理方式都会有不同。随着数码相机在家庭中越来越普及,人们在可以更方便的拍摄照片却又不需要把拍摄的照片都冲印的时候,更多就选择了打包保存在电脑或光盘中,图片管理软件就在这一过程中充当了非常重要的作用。通过图片管理软件,我们的照片可以更加动态、更加多姿多彩的展现,通过电子相册制作软件的打包,相片可以更方便的以一个整体分发给亲朋好友,刻录在光盘上保存,或在影碟机上播放。COOZINE(XBOOKSKY)COOZINE基于Flash技术,是实现在线和离线、电子图书的核心,它应用在需要从PDF文件或JPEG文件源制作的电子杂志的情况,它同时提供一些协助处理工具软件,方便批量的处理,而且帮助文档较详细,还提供了演示下载包,可以稍作修改即可。COOZINE与目前的几类电子杂志软件不同,它把阅读以及低成本批量制作作为首要追求目标。每一本COOZINE电子杂志(电子图书)由COOZINE、JPEG图片和XML文件3部分组成。PortableScribusPortableScribus是一款类似AdobePagemaker的开源图片管理制作软件,可以用来制作个人文件、邮件列表、电子杂志类型的电子文档。它体积很小,可以放在U盘里,只需插入相应的电脑就可以使用。Premiere软件特点:premiere是一款专业级具有高级的编辑功能的图片管理制作软件,对于专业用户,它可以通过不断增加插件,和用户的专业水平进行复杂的编辑,制作出专业的绚丽相册,但由于面向专业用户,软件的操作十分复杂,上手时间很长,非专业用户使用有非常大的难度。1.3本文的主要工作Android图片管理系统有效地解决了大量图片管理问题,系统开发时分为前端页面设计开发和后台业务实现开发。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第4页。本文开头首先对图片管理软件的研究背景做了简单介绍,其次简述了现今流行的几个手机开发平台,详细介绍了Android开发平台的架构,并描述了Android开发环境的搭建过程;接下来是对系统设计的介绍,本文从对图片管理器功能模块的分析,到android系统服务的调用的设计,再到系统客户端的实现都做了详细的解说,并把有些细节和技术提出来做单一的解说;紧接着本文描述了此客户端的图片管理软件的测试过程和此系统特色功能。本设计完成后,能够实现以下功能:图片的浏览、图片属性的修改、图片的增删改等具体操作。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第4页。1.4本文的组织结构第二章需求分析,首先描述图片管理系统的总体业务流程,然后介绍该图片管理器的设计目的和解决的用户实际使用面临问题。最后将软件需求分为软件功能性与非功能性需求进行汇总。第三章系统概要设计,主要是基于android系统架构与MVC软件架构进行设计。概要设计包括物理层设计与逻辑架构层的设计。第四章系统详细设计,本章主要进行系统建模设计。在系统建模部分,从静态结构和动态结构两个方面讨论了系统建模的设计。第五章系统的实现与测试,首先对图片管理器基本操作如何实现进行描述,并通过系统代码截图和软件功能截图进一步说明。在本章的最后又对系统的测试情况进行了说明。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第5页。
第2章需求分析基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第5页。2.1总体业务描述本章需求分析为了下文的详细设计和系统实现想打下基础,旨在于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,同时提出了本软件开发过程,便于开发人员与客户之间的交流、协作,并作为工作成果的原始依据,同时也表明了本软件的共性,以期能够获得更大范围的应用。在android系统在手机平台风靡的同时,图片管理器在系统中越来越普及,人们通过图片管理软件对图片进行图片管理,既方便了用户,又为传统图片管理带来了革新的契机。现今android操作系统逐渐成熟,尤其是伴随着各大手机厂商如三星(Samsung),多普达(HTC)出款的多款android手机大热。人们不仅要求采用手机连接PC进行图片管理,更加盼望在手机操作系统上实现快捷方便的图片管理。随之带来的是android手机给功能强大,使用简单快捷,拥有良好操作界面的手机图片管理系统的具体需求。系统基于android系统进行二次开发,考虑到android的基于Linux本质,开发语言选择使用成熟的高级语言Java。在pc端windows平台下使用AndroidSDK自带移动模拟器开发调试,生成软件包,在手机端安装apk来达到最终系统运行的目标。利用eclipse开发的android应用程序,能够与安装有android操作系统的手机硬件相联系,快速便捷的访问手机SD卡和本机内存中各个类型图片。有条理的将手机图片与系统中划分的图片类型集合相对应,比如系统中分为图片集合,音乐集合等,通过窗口集合的方式显示各个对象和不同类型图片的对应关系。系统层次清楚,模块独立。根据软件低耦合的指导思想,将系统分为界面层,数据层,存储层等。采用此软件架构,满足了用户的同时访问和android系统并发调用。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第6页。能够支持多种图片格式,可是标准主流常见的图片格式,也可以满足特定格式需求。系统留有软件识别的图片格式的接口,能够能够方便的增加在开始之后确定的图片格式和特殊需求。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第6页。系统具有能有完美调用android服务的接口,支持在使用开发过程中新需求带来的处理新对象所对应的android服务。数据的流向具有双向性。软件将本机或sd卡的图片数据进行处理,汇总之后上床到界面端,呈现在用户面前。软件将用户操作具体实现到本机或sd卡中,根据用户操作进行图片的更新,良好快速实现上层软件对底层硬件设备的数据管理。2.2系统目标和需要解决的问题随着信息的高速发展手机已变的越来越普及尤其是智能手机,基于Android操作系统的手机就是在这样的趋势下逐渐一步步的走入我们的生活,因此,我们选择这样的研究课题最主要的一点是看在它的潜在市场价值,通过开发基于Android的图片浏览器,能给广大Android用户提供一个安全的,功能强大的,易于操作的,便于管理的高性能管理器。安卓手机基本都会去安装图片浏览器,尤其是ES图片管理器、RE图片管理器、安卓优化大师用的最为常见,根据需求分析可见,用户将通常对图片管理的要求就是美观度、操作性、功能是否全面。系统需要解决的问题主要包括:2.图片管理中各个方面的功能不同,需要在满足1.图片管理的主要使用者是广大手机用户,手机用户不同的需求多而各式各样,软件怎样提供最为方便,最能提供有效服务,最能满足大量用户共同需求的功能?需求的同时,对需求进行具体分析。图片管理业务流程复杂,需要在android系统的基础上,完成在sd卡和本机图片管理,系统如何在处理用户图片操作的同时,实现与系统的兼容和交互,又能体现出软件的特色和功能。3.与手机系统交互时,获取的图片信息复杂且没有分类,同时用户的操作也是不尽相同。随着用户使用手机的变长,图片的数量和类型伴随着增多,手机存储容量进一步减少,需要对图片进行实时的管理,将大量图片的实时信息上传到UI界面。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第7页。4.最大程度的减少用户误操作和实现对系统关键图片的保护,在管理过程中如何做到软件的可靠运行,操作的安全和图片的完整,并且需要对管理进行记录,来达到图片的恢复。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第7页。5.软件的UI端作为大量图片的显示端,汇总较多数量和不同类型的图片,如何叫系统以最快的速度对数据进行有效整合,并且以简单明了的图形化和树状结构显示在UI。6.系统采用统一管理方式,即在应用程序列表中会显示系统中全部软件信息。其中系统必须组件和用户自行安装软件相互混杂,一般用户很难讲其中的软件区分开来,这就对用户的软件管理带来不便。本系统的开发就是为了解决以上这个问题。本系统的设计是专门针对Android设备用户的日常软件,具体提出以下实现目标:1.大量图片或者图片夹的基本操作,比如复制、粘贴、剪切、新建图片夹、删除等典型操作2.支持多标签页改变图片列表或者图标的显示方式。3.支持图片拖延功能图片或者图片夹多选功能。4.添加APK的Android安装包管理,包含软件安装,卸载,备份,查看详细信息等5.收藏夹功能类似于书签,可以创建多个库并把图片添加到库里面,方便对图片进行管理和分类。6.在界面和操作上有很独到而人性化的设计。界面简洁精美,功能强大全面,智能的图片分类浏览,独有的网格化界面浏览设计让用户在手机上体验到PC一样的方便性。7.让用户在手机本地图片和sd卡图片管理之间实现最平滑的操作体验。8.在root权限下,使用比系统自带管理器更容易,界面和操作流程更加优秀。在统一浏览屏幕下,浏览、传输、复制、剪切、删除、重命名图片和图片夹等图片操作比较快速。2.3系统需求分析基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第8页。需求分析目的是规范化本软件的编写,旨在于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,同时提出了本软件开发过程,便于开发人员与客户之间的交流、协作,并作为工作成果的原始依据,同时也表明了本软件的共性,以基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第8页。在需求分析中,需求获取为了实现目标系统,需要大量时间和用户沟通,研发人员搭建良好的沟通环境,和用户高度合作。身为研发人员,必须将用户的表面需求抽象为模型,这样才能彻底理解需求,建立良好的沟通桥梁,帮助研发人员深刻了解业务模型,并且将系统如何帮助用户简化操作,提高图片管理水平,带来方便。本文所开发的基于android的图片管理系统是一款安装在主流android手机上,集图片分类,图片管理,权限获取,图片统计于一体。通过android开源的优势,保证软件能够识别外接存储卡和本机内存;同时,手机软件的特殊性需要图片管理系统采取一定的安全机制,保护用户的隐私。本软件能为用户提供最基本的图片浏览,相关图片调用:例如图片相关路径的设置、路径的更改,可以最大限度的体现图片浏览器的最基本的功能,使图片浏览器的性能在目前配置下最大程度的提升。Android手机用户首先打开软件,进入系统主界面,手机软件请求获得root权限,并初始化显示界面,显示各个不同类型图片的各项基本信息,同时对sd卡进行初始化,获得sd卡具体容量信息,初始化完成后,用户对图片进行诸如查看,移动,删除等基本操作,在此基本操作功能上,系统调用各个软件对不同图片进行不同调用,如打开图片,浏览图片等。用户在使用完上述图片管理功能之后,用户退出软件,系统释放掉占用的root权限。系统整体流程如图1-1所示:图2-1Android图片管理系统整体流程图Figure2-1Androidfilemanagementoverallsystemflowchart1.图片分类基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第9页。基于用户对图片方便的具体需求,系统对图片进行分类,分类的标准按照android系统所识别的几大图片类型,分别按照不同的图片类型遍历sd卡和本机存储空间,获得此类型的图片列表,最后在图片浏览界面按照系统设定,以网格化的形式将图片数量和类型显示在用户面前,通过高效率的软件功能,在最短的时间,将大量的图片按照合适的分类,按用户的具体需求,向用户提供图片分类浏览,达到设计目标。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第9页。2.图片管理(1)需求建模研发人员通过对android系统的研究和对广大用户的需求分析进行实际调查,与用户深入交流,根据多方面获得的需求信息建立诸如用例图,时序图,流程图等模型,与用户需求建立可视化的桥梁,将信息双向透明的展现在用户和研发人员之间。需求建模对软件开发起到的全局性的促进作用,针对本文所研发的基于android的图片管理系统,需求分析在软件生命周期中占有非常重要的位置。本文从系统的功能性需求和非功能性需求两方面进行分析。(1)系统功能性需求1)系统总体功能分析在需求过程中,调研人员采用用例图描述系统的各个单元模块,通过对图片管理软件的参与者和用例之间的关系描述,将系统的静态结构以可视化的方式提供给研发人员作为参考。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第10页。图片分类运行在android操作系统中,图片管理软件调用权限获取模块申请获取root权限,为用户提供图片管理的基础。图片管理系统获取权限的同时,调用生成列表模块遍历手机内存和SD卡中图片,生成列表。在生成列表的基础上,软件对图片进行分类,调用界面模块,将图片展示在软件前端。用户在软件的前端显示基础上,查看图片,选择需要操作的图片,对图片进行查看,删除,重命名和图片拖拽操作。系统总体用例图和流程图如下:基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第10页。图2-2Android图片管理系统总体用例图Figure2-2Androidfilemanagementsystemgeneralusecasediagram2)图片分类管理基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第11页。进入图片分类的首页面,系统可以浏览系统所划分的类型下的所有图片,不同的图片类型展示不同的图片图标,如果是常用的图片类型,则展示相应的图片或者图标。分别列出了当前类别和属于该类别的图片数量(比如手机中所有音乐,视频之类的图片数量),当系统点击其中一个类别的时候,会在第2个页面展示当前页面的信息。系统所划分的图片类型有音乐,视频,图片,软件,文本图片,压缩包等,另外,根据用户的特殊需求,图片分类提供收藏分类界面,为用户提供图片收藏功能,方便用户查找。系统具体用例图如下图:基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第11页。图2-3Android图片分类用例图Figure2-3Androidfilemanagementgeneralusecasediagram3)图片管理系统可以选择复制,移动,删除,重命名,收藏这些操作,当系统选择一个条目并执行如图的操作的时候它的名字就会变成蓝色,出现晃动提示。当系统选择移动或者复制的时候,,这时系统可以选择图片夹,点击确定按钮进行复制,移动操作.在图片管理的过程中同时伴有着界面切换,开机自启动功能,图标常驻通知栏等具体用例。具体用例图如下:基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第12页。图2-3Android图片管理用例图基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第12页。Figure2-3Androidfilemanagementgeneralusecasediagram图片管理过程中,需要注意的是用户权限的获取,为保护系统核心图片,在未获得root权限的情况下,不允许对图片进行操作,具体流程如下图:(2)系统非功能性需求Android图片管理系统面向用户功能明确,并且由于是基于android系统手机嵌入式软件,所以满足图片管理主要功能的同时,还需要满足一些非功能性需求。非功能性需求在以往的软件开发中经常被研发人员忽视,导致非功能性需求得不到保障,进而致使保障不了功能性需求的定义和实现。为了更好的实现图片管理系统的带给用户的价值,基于提高软件质量和遵守Android软件设计的主流标准和规范的考虑,图片管理系统非功能性需求有以下几个方面:1.界面设计需求:此处的界面设计需求不同于详细的界面的设计,主要体现的是用户在手机上使用图片管理软件的体验感觉。作为手机应用,应该注重软件界面设计的美观,简单,大方。由于图片类型的较多,不同图片类型模块间的切换要求平滑实现。界面主题颜色采用醒目亮色。调用android操作系统的控件时充分考虑系统对控件的支持是否良好和使用范围是否超出软件需求。2.执行需求:执行需求要充分考虑当前主流手机的硬件配置,要求图片管理软件精确完成图片操作和完成功能时间在用户可接受的范围之内。软件在响应用户的图片操作时,对初始化界面显示图片列表的速度,完成诸如图片移动,删除,重命名等操作的精确性,完成操作后更新列表的时间,验证root权限的准确度等。3.易用性需求:在满足用户功能的需求的同时,软件最终提供给用户的功能的调用要符合用户使用手机软件的习惯操作和对软件的前期期望值。系统需求分析中心围绕的用户的使用习惯展开,细分用户习惯和需求,和软件应用功能相结合,最终达到用户可以更快的操作软件。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第13页。4.适应性需求:适应性需求主要包括图片管理软件对手机软件环境和硬件环境的适应。系统适应的软件环境主要是适应手机android操作系统,软件适合于android1.0以上的所有版本的系统,可以调用android相应的服务和android自带的控件;系统适应的硬件环境主要是识别手机内存和自带的SD卡,软件安装后占有极少的手机空间前提下,提供完整的图片管理功能。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第13页。5.扩展性需求:系统采用开源代码java,基于android系统开源的特性,在现有的成熟的软件框架之下,可以调用系统留有的二次接口进行后续的软件功能扩展,定期维护和系统升级基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第14页。6.安全性需求:系统面对的手机图片含有大量私人重要信息,如自拍图片,系统截图等,同时,用户可以查看系统图片,若用户对个人重要图片和系统关键图片进行了不当误操作,后果不堪设想。为此,针对系统关键图片误操作,系统提供了关键性图片保护功能,对系统图片采取验证root权限的验证,针对个人重要信息图片,系统应当提供提示框的方式提示用户,并考虑采用支持可恢复性处理。总之,在注重功能实现的同时,将软件功能面向的图片对象有条件的限制在特定图片范围之内。
基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第14页。第3章系统设计3.1系统概要设计根据长期软件开发经验,软件架构是手机软件系统开发面临的主要矛盾,基于成熟的软件架构,才能设计出优秀的手机系统。良好的软件架构能够有力的支持和促进系统的设计与实现,主要包括组织设计模块,定义手机系统的与底层android库的接口,模块之间的调用和协作,主系统涵盖的各个子系统模块的组成,当前系统架构风格和用户具体界面需求等方面。信息交互。系统详细设计两个具体模块:手机客户端软件系统针对手机用户的需求特点,采用了android手机客户端技术,使用基于MVC的多层架构设计,加以图形化界面调用android系统库中插件,为方便用户不定期的对图片进行管理,系统软件运行在手机的android平台上。客户端图片管理软件采用动态刷新,使用android系统多线程技术,实现对不同类型不同位置的所有图片的管理,根据上一章节的功能性和非功能性需求分析可知,系统需要将图片的类型,图片数量等信息汇总到前端界面显示的同时,还需要对手机存储空间中的图片进行遍历更新。系统设计成两大核心模块:图片分类模块和图片管理模块。软件架构针对用户的具体需求和系统面向的图片管理,采用面向对象的编程思想,参考基于JAVA的MVC各个层次架构特点,调用android系统库和控件,来完成系统主要功能。系统的层次的特点是以手机存储空间内的图片集合为核心,根据用户,将不同的功能划分为多个模块。图片分类模块采用设计的前端界面进行区分式显示,体现不同的业务模型。图片管理模块调用控件和服务,对图片进行相应的操作。3.1.1系统物理架构设计基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第15页。系统的物理架构基于android手机存储设备,核心围绕手机存储设备上的各类图片展开,为手机用户提供具体的图片管理功能。用户通过基于android的客户端架构,使用系统访问手机存储设备,手机用户,用户使用软件相应功能对图片进行操作,通过android操作系统服务与内存和SD卡上图片进行交互。图片管理系统物理拓扑结构如下图所示所示:基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第15页。图3-1图片管理系统物理拓扑结构图Figure3-1Filemanagementsystemmapforphysicaltopologystructure图片管理系统设计时采用了基于android系统开源的性质,只要满足系统识别图片的范畴,用户在不同的android手机上都可以使用,同时,google公司开放了底层系统库,系统可以以程序接口的方式实现良好调用,所以图片管理系统设计平台采用了android操作系统。3.1.2系统逻辑架构设计分层是软件设计中非常重要的思想,特别是面对较大的软件系统。分而治之是计算机中经常采用的一种方法。因此按照软件工程分层考虑的理论,我们对此系统进行分层设计。天元物联路灯管理系统按照MVC的设计模式将系统划分为界面层、业务层、协议层、数据库层四个层次。此系统采用模块化设计,方便其他开发语言的绑定。在系统结构中,每个逻辑层向上层提供程序接口,供给上层调用完成相应功能。系统逻辑结构如图3-2所示:基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第16页。面对数据处理量较大,设计规模较大的软件系统,软件层次清晰是基本要求。软件架构分层是系统设计中广泛采用的方法。为了实现软件层次清晰的要求,对图片管理系统的各个模块划分层次。按照MVC 模式开发应用层的手机程序分为界面层,业务层,服务层,通过组件的重用降低模块之间的耦合,图片管理系统的逻辑结构如下图所示:基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第16页。图3-2图片管理系统逻辑结构Figure2-2Filemanagementsystemlogicstructure1、界面层界面层实现图片管理系统的前端显示,包括图片浏览界面,图片管理界面。界面层为软件使用者提供与手机交互的用户界面,界面层与用户的交互最为直接,能够引导用户自己完成图片管理的相应的操作。图片管理系统界面层显示功能采用多窗体九宫格的显示框架,android系统的自带控件,xml配置文件等生成界面。2、业务层基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第17页。业务层在架构中体现系统核心价值,主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,将软件模块抽象成对数据进行处理的组件。基于需求分析获得的主要功能性需求,将系统业务逻辑分为软件分类模块,软件管理模块。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第17页。为实现层次的弱耦合结构,业务层在界面层和数据层之间起到承上启下的作用,软件分类和软件管理等业务模块通过调用android系统服务和系统库对数据层(在本系统中对应文件层)进行访问,完成图片分类和图片管理的各种业务逻辑,满足需求分析中的所获取的具体功能需求。图片分类模块在界面层下发的数据基础上,采集数据层的数据并做相应的处理,功能实现之后,上传到界面层前端UI予以显示。图片管理模块实现图片管理的具体的功能之后,将操作体现到到图片层,通过调用android系统服务和系统库与数据层进行交互,数据层对图片层各种数据进行更新。业务逻辑层在体系架构中的位置很关键,对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。在相同android系统服务和系统库以及面向的存储设备上的手机图片大相径庭的基础上,业务层的不同的设计与实现可能会导致形成不同的图片管理系统,换言之,各种图片管理系统之间的差别就体现在业务层的设计与实现的差别,因此系统的设计和实现的关键体现在业务层的设计与实现。3、android系统服务和系统库android系统库是google专门开发设计的一套成熟库,为支持java,完善系统的开源性,以android服务为基础,构建可以多次复用的图片管理业务,减少重复开发,将软件开发的中心从图片管理功能实现的细节转移到扩展系统库的支持,在android系统服务的支持下,android系统库的引入大幅度提到软件设计和实现的效率。图片管理系统所使用的android系统库结构如下图所示:基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第18页。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第18页。图3-3Android系统库结构图Figure3-3Androidsystemlibrarystructurediagram4、文件层文件层也就是数据层,文件系统将数据存储在硬件上,系统内核通过驱动将其物理地址映射到/dev目录下拉,使得硬件可以像访问文件一样进行使用。物理地址可以像访问文件一样进行使用。物理地址通过通过映射之后将快设备挂载至目录就可以供业务逻辑层各个模块访问操作。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第19页。
第4章系统详细设计基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第19页。系统详细设计在需求分析和系统概要设计完成的基础上,完成各个业务逻辑的设计,为了下一章的系统实现打好基础。本章根据系统层次划分,将从界面设计、图片管理模块设计、图片分类模块设计等方面,其中系统主要功能模块主要位于业务逻辑层,通过界面层完成图片浏览,通过业务层实现图片操作。本章将结合android系统的特点及java相关技术,实现图片管理器中各个java功能类设计,不同模块之间的访问,图片分类和管理的实现以及管理图片前端界面层显示信息的实现。我们将各个功能模块进一步划分,划分的功能模块与各个子系统功能详细设计说明如下:4.1界面详细设计1、系统总体包图在图片管理系统开发中,包图用来表述功能组命名空间的组织层次。图片管理系统的业务层包由res包,adapter、bean、impl、util、filemanger、ansyloaderfavdb等包组成。各个包之间的依赖关系如下图所示:图4-1系统总体包图基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第20页。Figure4-1ThesystemoverallpackageFigure基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第20页。在核心filemanger包基础上,各个功能包实现具体功能,filemanger包里图片分类和图片管理功能包,调用adapter包汇总数据,adapter包调用bean包获得各个类型图片的详细信息,until包调用favdb、fileutil、impl包完成图片的增加删除修改等操作。图片管理主要系统包信息如下表所示:系统包名主要功能com.tarena.filemanger主题界面Activity类汇总包com.tarena.filemanger.adapter基础数据适配器包com.tarena.filemanger.bean应用程序素材包com.tarena.filemanger.favdb数据库连接包com.tarena.filemanger.fileutil程序操作包com.tarena.filemanger.impl.ansyloader图片操作包com.tarena.filemanger.util系统工具包图4-2图片管理主要系统包Figure4-2Documentmanagementsystempackage4.2Android资源设计此处所说的资源为非编码设计部分,以本系统来说,系统桌面特效需要使用一些动画来显示,需要一些图片来设置,提示信息需要使用一些字符串来显示,这些常量值、布局图片、菜单、图片、原生图片、动画、XML图片等就可以称为系统资源。图片管理系统的资源图如下图所示基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第21页。图4-3图片管理系统的资源图基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第21页。Figure4-3Resourcemapofthedocumentmanagementsystem系统通过调用资源编译工具AAPT来编译这些资源文件,资源图片要有一定的布局和格式。其类型和目录结构如下表所示:目录结构资源类型res/anim/XML动画文件res/drawable位图文件res/layout/XML布局文件res/values/各种XML资源文件Arrays.xml:XML数组文件Colors.xml:XML颜色文件Dimens.xml:XML尺寸文件Styles.xml:XML样式文件res/xml任意的XML文件res/raw直接复制到设备上的原生文件res/menuXML菜单文件系统资源的使用分为在代码中使用和在其他资源图片中引用该资源图片。在编译图片管理系统时,自动生成一个R类,在该类中又生成了相应的内部类。视图查看模块基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第22页。视图查看模块是一个GUI界面,是直接展示给用户观看效果的模块,这对用户对界面的友好性有一定的难度,我们采用了树形菜单的和小图标的图形用户界面,这样的话就能很好的解决了图形用户界面基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第22页。图3-4视图查看模块的xml静态图Figure3-4xmlstaticdiagramviewViewmodulemain.xml文件为系统主界面配置图,包含<RelativeLayout><ViewFlipper><LinearLayout>标签,实现各个按钮和标签,文字,标签,图片,界面布局的显示,调用如上图的各个分界面和各个控件的xml界面设计文件,其中file_explorer.xml为图片分类模块界面设计文件,alert_dialog.xml为图片管理模块界面文件设计,noflie_item.xml为图片查找界面设计文件,app_item.xml为图片操作提醒界面设计文件。4.3图片分类模块详细设计基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第23页。系统分类模块为系统的核心模块之一,为图片管理提供分类支持,调用com.tarena.filemanger.CategoryAct类初始化界面,完成对所有类型图片的汇总,汇总之后进行以网格化分类显示。CategoryAct显示具体类设计如下图所示:基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第23页。图4-5CategoryAct显示具体类图Figure4-5CategoryActdisplayspecificclassdiagram基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第24页。CategoryAct类继承了Activity父类和OnItemClickListener>接口,通过Activity父类属性实现界面,通过OnItemClickListener实现对界面事件的监听。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第24页。通过调用picture_count,sd_card_capacity_label,fav_count以及LinearLayout实体。通过调用setview()函数实现对图片类型和数量的汇总显示,对每个单元的内容以及UI格式进行描述;通过readSDcard()函数实现对SD卡存储容量的显示;通过StarThreadGroup()启动对图片的后台支持。CategoryAct合作图如下图所示:基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第25页。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第25页。图4-6CategoryAct合作图Figure4-6CategoryActcollaborationdiagramonCreat()完成前端界面和后台服务的初始化,通过调用setView()初始化系统前端界面的同时,调用StarThreadGroup()启动后台服务支持。在setview显示前端界面时,setView()函数调用readSDCard()函数获得SD卡容量和剩余存储量在图片分类的九宫格页面下端显示。onCreate()函数调用图,如下图所示:图4-7onCreate()函数调用图Figure4-7onCreate()functioncallgraphonItemClick()调用bean包下面图片get方法获得图片信息,对应界面菜单点击相应相对应。onItemClick()函数调用图如下图所示:图4-8onItemClick()函数调用图Figure4-8onItemClick()functioncallgraph4.4图片管理模块详细设计基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第26页。图片管理模块为系统功能实现的核心模块,图片管理的Activity类FileMangerAct与图片分类模块的CategoryAct类进行切换,在图片分类的基础上对图片进行操作。FileMangerAct图片管理类具体类设计如下图所示:基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第26页。
图4-9FileMangerAct图片管理类具体类Figure4-9FileMangerActfilemanagementclassspecificclass基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第27页。FileMangerAct首先实例化adapter,通过adapter对图片进行访问,然后通过图片工作操作类Filehelp实现对图片各个操作,包含操作MENU_FAV收藏MENU_DELETE删除MENU_COPY复制MENU_RENNAME重命名MENU_MOVE剪贴(移动)MENU_MOREINFO详情等操作,在完成操作之后通过intent消息与显示界面交互,进行图片信息的刷新。文件操作具体流程图如下图:基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第27页。图4-10图片文件操作具体流程图Figure4-10Fileoperationsspecificflowchart基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第28页。为实现对图片的单独显示,系统设计了MyAdapter类,getCount()getItem(intposition);getItemId(intposition);getView(intposition,View)实现对图片数量,菜单项,菜单项标号以及系统图标标号,单独显示;具体类图如下图:基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第28页。图4-11图片操作具体具体类图Figure4-11Fileoperationsspecificconcreteclassdiagram基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第29页。为实现图片复制,删除,剪切,重命名等操作,系统设计了Filehelper类。对不同类型的图片设计通用的方法copyfile(),delfile(),movefile(),delfile();通过对方法的参数输入不同完成对方法的初始化,实现对不同图片的通用操作,系统设计类图如下:基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第29页。图4-12系统设计类图Figure4-12Systemdesignclassdiagram基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第30页。系统图片管理操作,通过设计FileMangerAct类,MyAdapter类,Filehelper类,通过三个类的实例化,以及类中各个方法的调用完成功能。模块总体类图和时序图如下:基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第30页。图4-13模块总体类图Figure4-13Moduleoverallclassdiagram基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第31页。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第31页。图4-14模块总体时序图Figure4-14Themoduleoveralltimingfigure基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第32页。
基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第32页。5.16分享图片5.7布局设计5.7.1TabActivity的布局实现图5-4TabActivity的布局实现图Figure5-4TheTabActivitylayoutFigureTabActivity的布局是顶部一个线性布局,有两个按钮,用于切换视图,下面是一个层叠布局(tabcontent),用于显示子Activity的内容.这里需要注意的是,系统把默认的TabWidget(tabs)设为隐藏,用系统线性布局里面的按钮代替TabWidget的功能。5.7.2图片浏览页面的布局实现基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第33页。图片浏览页面就相对简单一点,外部是一个相对布局,底部是一个线性布局,线性布局里面有两个操作按钮,确定和取消.只有在执行操作的时候,底部这个布局才会显示,中间是一个listview用来显示当前浏览的图片条目。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第33页。5.7.3分类浏览布局设计分类浏览的布局稍微复杂一点,这里系统先看一下布局导航图。图5-5布局导航图Figure5-5Layoutnavigationalcharts第一层:一个现象布局第二层:一个viewfliper第三层:viewfliper里面的两个线性布局第一个线性布局,就是放系统主页面的分类模块,第二个线性布局,用于显示系统当前点击某一个分类的时候用于展示系统的分类数据.其实就是一个listview,给予不同的数据,显示不同的样式.(比如音乐,视频,文本,图片等等).基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第34页。第四层:类别显示层,系统的设计界面有9个类别,其实对应了三个垂直的线性布局,每一个线性布局里面有有三个水平的线性布局.任何这个水平的线性布局里面有三个子view分别是imageview,和2个textview,下面是一个线性布局显示当前SD卡的内存使用.,可用进度条显示。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第34页。分类浏览的页面布局就是这样来设计,这里之所以用一个viewfliper是因为系统在来回点击分类的时候,用viewfliper切换视图比较方便而且可以做比较华丽的动画效果。5.8部分功能编码实现这里系统来详细介绍一下整个程序的数据获取,和加载的流程,以及页面跳转刷新的过程.5.8.1图片分类信息数据的获取在安卓系统中会自动建立一个媒体数据库,里面存放系统的图像信息,包括大小,路径,图片名.详细的属性可以打开数据库查看系统需要的属性,这里系统就把系统所需要获取的数据列出来就行了.至于别的文件系统就需要另外处理来获取数据,系统可以调用linux命令来查询图片系统中的所有系统需要查询的图片.以下为代码介绍:1、图片数据的获取基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第35页。获取数据的游标,有了它系统就可在数据库中查询所有图片的信息基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第35页。Cursorcursor=context.getContentResolver().query(Media.EXTERNAL_CONTENT_URI,null,null,null,null);publicstaticArrayList<T>getdata(Cursorcursor){ArrayList<T>musics=newArrayList<TMusic>();TMusicmusic;if(cursor.=null&&cursor.getCount()>0){for(cursor.moveToFirst();.cursor.isAfterLast();cursor.moveToNext()){music=newT();music.setcnme(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.AudioColumns.TITLE)));music.setMusicpath(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.AudioColumns.DATA)));music.setDurction(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.AudioColumns.DURATION)));musics.add(music);}cursor.close();}returnmusics;}代码5-1图片数据的获取Code5-1Musicfiledataaccess2、系统缓存图片的数据获取Cursorcursor=context.getContentResolver().query(vider.Store..Media.EXTERNAL_CONTENT_URI,null,null,null,null);代码5-2缓存图片的数据获取Code5-2Dataacquisitionofthevideofile基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第36页。这个游标基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第36页。publicstaticArrayList<TVideo>getVideo(Cursorcursor){ArrayList<TVideo>videos=newArrayList<TVideo>();TVideovideo;if(cursor.=null&&cursor.getCount()>0){for(cursor.moveToFirst();.cursor.isAfterLast();cursor.moveToNext()){video=newTVideo();video.setVideoname(cursor.getString(cursor.getColumnIndex("_display_name")));video.setVideosize(cursor.getString(cursor.getColumnIndex("_size")));Stringpath=cursor.getString(cursor.getColumnIndex("_data"));video.setVideopath(path);Bitmapbitmap=ThumbnailUtils.createVideoThumbnail(path,Thumbnails.MINI_KIND);video.setVideothumbnail(bitmap);videos.add(video);}cursor.close();}returnvideos;}代码5-3获取这个图片的缩略图Code5-3Getthumbnailsofthevideofiles这里需要说明的是用的ThumbnailUtils.createVideoThumbnail(path,Thumbnails.MINI_KIND)代码,是根据系统视频所在SD卡的绝对路径,获取这个视频图片的缩略图。3、图片信息的获取Cursorcursor=context.getContentResolver().query(vider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI,null,null,null,null);代码5-4图片信息的获取Code5-4Getthepictureinformationcode基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第37页。上面是获取图片数据查询的游标,根据这个游标系统可以查询出所有的图片信息。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第37页。publicstaticArrayList<TImage>getImage(Cursorcursor){ArrayList<TImage>images=newArrayList<TImage>();TImageimage=null;if(cursor.=null&&cursor.getCount()>0){for(cursor.moveToFirst();.cursor.isAfterLast();cursor.moveToNext()){image=newTImage();Stringfilepath=cursor.getString(cursor.getColumnIndex("_data"));image.setImgpath(filepath);image.setImgname(cursor.getString(cursor.getColumnIndex("_display_name")));image.setSize(cursor.getString(cursor.getColumnIndex("_size")));images.add(image);}cursor.close();}returnimages;}代码5-5图片信息的获取系统这里需要解释的是这里系统只取path,而不是把图片直接转换成缩略图就拿出来显示.因为系统把图片转换成bitmap是需要耗费一定的时间,这样会影响用户体验.4、手机拍摄图片的获取基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第38页。首先系统需要了解系统的一个类localpictureInfo,这个类里面包含了系统所有安装程序的一个信息,比如pictureName,versionName,ActivityInfo,applicationInfo等等都是系统需要的信息,这些信息也是系统在mainfest中注册的信息。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第38页。PackageManagerpackageManager=context.getPackageManager();//用包管理器获取所有手机拍摄的照片ArrayList<PackageInfo> listInfos=(ArrayList<PackageInfo>)packageManager.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES|PackageManager.GET_ACTIVITIES);ArrayList<PackageInfo>userpackinfors=newArrayList<PackageInfo>();//遍历所有程序找出手机拍摄的照片for(PackageInfotemp:listInfos){//获取每一个程序的applicationInfoApplicationInfoaInfo=temp.applicationInfo;booleanflag=false;//判断是是否是可编辑应用if((aInfo.flags&ApplicationInfo.FLAG_UPDATED_SYSTEM_APP).=0){flag=true;//判断是否是系统应用}elseif((aInfo.flags&ApplicationInfo.FLAG_SYSTEM)==0){flag=true;}//如果flag为true则是用户拍摄的应用if(flag){//添加到新的集合中userpackinfors.add(temp);}}代码5-6安装应用程序的获取Code5-6Acquisitionofinstalledapplications通过上面的方法系统可以获取所有系统中,用户安装的应用程序.5.8.2系统截图图片基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第39页。系统截图系统通过访问系统数据库是没有记录的,所有就需要系统自己想办法去获取,大家可能会想到用递归遍历所有图片,根据后缀名称获取指定图片,然后在放到集合中.但是系统需要考虑执行效率,哪样的话效率可能比较低下.下面系统来介绍一种方法就是通过LINUX命令获取这些图片.由于安卓系统基于linux内核,所以它支持很多linux命令,使用ls-r图片遍历命令。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第39页。//下面就是调用linux命令的方法baseScanDir是系统要遍历的根目录Processprocess=Runtime.getRuntime().exec("/system/bin/ls-R"+baseScanDir);系统可以用输入流获取ls-r列出的图片信息.reader=newBufferedReader(newInputStreamReader(process.getInputStream()));系统在读取输入流的时候,可以用正则来获取所有系统需要的图片.while((read=reader.readLine()).=null){//判断是否为目录行Patternp=Ppile(baseScanDir+"(.+?):",Pattern.CASE_INSENSITIVE);Matcherm=p.matcher(read);//如果为目录行,则记录为当前目录if(m.find()){strNowDir=m.group(1);continue;}//判断图片类型PatternexP=Ppile("(.txt$|.zip$|.rar$|.gz$|.html$|.txt$|.doc$|.csv$|.xml$|.apk$)",Pattern.CASE_INSENSITIVE);MatcherexM=exP.matcher(read.toLowerCase());if(exM.find()){StringnowExName=exM.group();if(".apk".equalsIgnoreCase(nowExName)){apkArrayList.add(baseScanDir+""+strNowDir+"/"+read);}elseif(".txt".equalsIgnoreCase(nowExName)||".doc".equalsIgnoreCase(nowExName)||".xml".equalsIgnoreCase(nowExName)||".csv".equalsIgnoreCase(nowExName)){docArrayList.add(baseScanDir+""+strNowDir+"/"+read);}elseif(".zip".equalsIgnoreCase(nowExName)||".rar".equalsIgnoreCase(nowExName)){zipArrayList.add(baseScanDir+""+strNowDir+"/"+read);}}}代码5-7压缩图片代码Code5-7Compressedfilecode上面的方法就是把系统需要的截图图片,压缩图片放到三个ArrayList中,在把它放到一个HashMap中.5.8.3分类子页面当系统到这个页面,如果让所有分类的数据一次性加载完,再去执行别的操作,恐怕就必须ANR了,这里系统需要开启5条线程,分别加载数据,在用一个handle加载当前图片的数目.当系统点击其中一个分类的时候,在把当前获取的数据加ViewFliper的第2个页面,也就是第二层下面的listview,这个listview是系统几个分类公用的视图.基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第40页。当系统点击某一个分类的时候,系统需要标示出是哪一个分类,并把当前对应的Adapter放到listview中,并且要标示出系统当前点击的是哪一个分类,以方便系统在listview中执行点击操作,当系统点击当前的listview中某一个条目的时候,可以根据当前显示的数据执行相应的操作,比如当前是图片,系统点击listview中的条目的时候,执行图片浏览查看.这里系统需要了解,每个文本对应的各种mimetype,和对应的intent,根据系统的图片类型,获取对应的intent,然后starActivity(intent),它会自动列出可以接收此uri的程序,让系统选择.这里系统只需要确定系统没一个图片的类型就行了.(这里可以参考com.taena.filemanger.util包下的MyInten工具类里面的很多静态方法,可以获取指定uri的intent),如果是系统不知道的图片类型,这里系统可以用一个方法。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第40页。publicstaticvoidopenFile(Contextcontext,Filefile){//Uriuri=Uri.parse("file://"+file.getAbsolutePath());Intentintent=newIntent();intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//设置intent的Action属性intent.setAction(Intent.ACTION_VIEW);//获取图片file的MIME类型Stringtype=MIMEType.getMiMeType(file);//设置intent的data和Type属性。intent.setDataAndType(/*uri*/Uri.fromFile(file),type);//跳转context.startActivity(intent);}代码5-8判断图片类型Code5-8Determinethefiletype去打开这个图片,这里系统只需要把这个图片的路径传递过来,系统会默认去判断系统给图片是什么类型,去启动对应的activity.5.8.4图片浏览页面基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第41页。图片浏览页面,是根据当前图片的绝对路径来列出“当前目录”所有的图片,当系统点击一个图片的时候,可以根据这个图片类型打开这个图片,如果是一个目录的话.系统就打开了这个目录.在列出这个目录的所有图片,依次类推,当系统在深层目录的时候点击back键,会根据系统进来的层次依次返回,当系统到达跟目录的时候,弹出一个提示,是否退出应用程序.这个页面的大致逻辑就是这样基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第42页。核心的显示方法。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第41页。基于Android的图片管理器设计与实现毕业设计(论文)全文共65页,当前为第42页。/***通过当前路径在listView显示所有图片*@paramfilePath*/privatevoidgetFileDir(StringfilePath){//记录当前的目录nowfilepath=filePath;items=newArrayList<String>();paths=newArrayList<String>();Filef=newFile(filePath);//列出当前目录下的所有图片File[]files=f.listFiles();//判断是否是进入目录之后if(.filePath.equals(rootPath)){items.add("b1");paths.add(rootPath);items.add("b2");paths.add(f.getParent());}/*将所有图片加入ArrayList中*/for(inti=0;i<files.length;i++){Filefile=files[i];items.add(file.getName());paths.add(file.getPath());}//添
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度南京市江北新区建设监理合同2篇
- 2024年度技术研发合作合同:某某生物医药科技有限公司2篇
- 2024年度国际艺术品展览与交流合同3篇
- 2024年度玩具行业总代理及销售合同3篇
- 图书馆数字化管理的背景与意义
- 2024年度牧草种植基地租赁协议书3篇
- 2024年度跨境电子商务平台运营许可合同3篇
- 2024年木工项目个人合作协议
- 2024年度餐饮加盟店合同范本3篇
- 2024年度赛事活动大巴车服务保障合同3篇
- 食品标签与食品营养标签解读课件
- 新人教版小学三年级数学上册期末总复习提纲资料
- 龙门吊轨道基础计算书汇总
- 项目工程管理流程图
- 宿舍热水设计计算
- 2021年山东省东营市中考物理试卷
- 架空输电线路杆塔位移计算
- “杜仲壮骨丸”产品召回评估报告
- 简易注销全体投资人承诺书
- 一年级拼音竞赛题
- 转炉副枪探头_贺力士提供
评论
0/150
提交评论