版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Android平台的电子相册设计与实现格式修改后资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。本科毕业论文题目:基于Android平台的电子相册的设计与实现姓名:班级:学号:日期致谢本论文的工作是在我的导师***的悉心指导下完成的,****严谨的治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢二年来***对我的关心和指导。***悉心指导我们完成了论文项目相关的科研工作,在学习上和生活上都给予了我很大的关心和帮助,在此向***表示衷心的谢意。***对于我的科研工作和论文都提出了许多的宝贵意见,在此表示衷心的感谢。 在工作及撰写论文期间,周飞宇同学对我论文在写作规范和格式方面的存在的问题提出了很多宝贵的意见,在此向她表示我的感激之情。中文摘要随着智能手机走进普通人的生活,它将成为人们获取信息的主要设备。因此,手机的应用服务将会有很大的发展空间,手机电子相册服务就是其中的一项。Android平台支持各种应用的开发,它是当前最流行的开源智能手机操作系统,最新的版本是android3.0,提供了便捷灵活的开发接口。本课题在AndroidSDK2.2平台下,设计了一个手机电子相册。采用了Android平台的Framework层提供的接口,实现了图片预览、图片动态切换、停止播放等功能,支持jpg,bmp,png和gif图片格式,该程序是独立的apk文件,能够安装在android2.2以上的系统内。它能够让手机成为一个电子相册,用户能够将其放在心仪的地方,来展示美好的图片,而不必再去购买别的设备就能拥有精美的电子相册了。本程序具有很好的可移植性和可继承性,开发者能够在其基础之上,建立更多的功能,来设计更加专业级的电子相册。关键词:Android,framework,电子相册,预览AbstractSmartcellphonehasfloodedourlife,anditwillbecomemainequipmentforacquiringinformation.Andcellphone’sE-albumservicewillhaveagreatfuture,asoneofapplicationserviceofcellphone.Androidplatformsupportsallapplicationresearch.Itisthemostpopularopen-sourcesmartcellphoneoperatingsystem.ThenewestversionisAndroid3.0,anditoffersconvenientandfastconnector.OnAndroidSDK2.2platform,thissubjectdesignsacellphoneE-album.Frameworkrealizespicturepreview,pictureexchange,stopfunctionsandsoon,andsupportsjpg,bmp,pngandgif.Thisprojectisasaperateapkfile,andmaysetupinsystemaboveAndroid2.2.ItwillmakecellphoneasE-album,guestsmayputitatanyplacesheorshelikestoshowwonderfulpictures,noneedtopurchaseotherequipment.Thisprocesshasgreatportableandinheritable,researchermaybuildmorefunctionsbasedonittodesignmoreprofessionalE-album.Keywords:Android,Framework,E-album,preview目录中文摘要 IAbstract II目录 III第一章绪论 11.1当前现状 11.2本设计的背景和研究意义 31.3本设计的目标 31.4论文结构 3第二章 电子相册研究 42.1电子相册简介 42.2电子相册的结构 42.3电子相册的性能 42.4电子相册的特点 5第三章Andriod平台介绍 63.1Android系统介绍 63.2Windows里的Android开发环境搭建 15第四章Android平台的电子相册的设计与实现 174.1FadeIn/FadeOut特效与运行线程 174.2主要功能模块的设计与开发 174.3用手指移动相册里的照片 184.4主界面的图片切换 204.5本章总结 22第五章总结与展望 235.1总结 235.2展望 23参考文献 23第一章绪论Android平台对我们来说已经不陌生了,从Google推出Android系统,已经经历了2年多的发展,当前最新的版本是Android3.0。作为全球最大的搜索引擎提供者,Google提供的服务实际上远不止搜索,还包括Gmail、GoogleMap、GoogleEarth、GoogleTalk、YouTube、iGoogle、GoogleDocs、Picasa、GoogleWebAPI、Blogger、GoogleNotebook、桌面搜索、GoogleAnswers、Google音乐搜索、GoogleStreetView等数量众多的服务。基于免费、开放的互联网精神,这些服务本身是不收费的。可是,经过这些有创意的服务,Google吸引了大量互联网用户,并成功地藉由广告服务,获取了巨额利润。 Google主持开发Android平台,其目的是推动全世界30亿手机用户,更方便、成本更低地访问互联网。Google公司宣称的目标是”组织世界上所有信息,让所有人方便地访问”。Google认为,手机价格越来越低,而其中手机平台的价格变化不大,在手机成本中所占比例越来越大。基于此,Google希望提供一个免费、开放、功能强大的手机操作系统,使用户承担的手机价格更低,同时更方便、更频繁地访问互联网。当然,Google本身也将因此而受益。 电子相册是指能够在电脑上或者是在移动终端上观赏的区别于CD/VCD的静止图片的特殊文档,其内容不局限于摄影照片,也能够包括各种艺术创作图片。电子相册具有传统相册无法比拟的优越性:图、文、声、像并茂的表现手法,随意修改编辑的功能,快速的检索方式,永不褪色的恒久保存特性,以及廉价复制分发的优越手段。 本文就是在Android平台上,基于SDK2.2开发的一款电子相册软件,包括图片预览、图片播放、动态切换、停止播放等功能。当然,由于时间的关系,本文仅实现了电子相册的基础功能,后续还有很多工作能够完善和深入。1.1当前现状国内外百花齐放电子相册制作软件顾名思义,则是用户制作电子相册的软件。当前国内外电子相册繁多,如图1.1所示,\o"查看图片"
图1.1电子相册封面不同的软件,制作出的电子相册都会有不同。随着数码相机在家庭中越来越普及,人们在能够更方便的拍摄照片却又不需要把拍摄的照片都冲印的时候,更多就选择了打包保存在电脑或光盘中,电子相册制作软件就在这一过程中充当了非常重要的作用。经过电子相册制作软件,我们的照片能够更加动态、更加多姿多彩的展现,经过电子相册制作软件的打包,相片能够更方便的以一个整体分发给亲朋好友,刻录在光盘上保存,或在影碟机上播放。COOZINE(XBOOKSKY)COOZINE基于Flash技术,是实现在线和离线电子相册、电子图书的核心,它应用在需要从PDF文件或JPEG文件源制作的电子杂志的情况,它同时提供一些协助处理工具软件,方便批量的处理,而且帮助文档较详细,还提供了演示下载包,能够稍作修改即可。COOZINE与当前的几类电子杂志软件不同,它把阅读以及低成本批量制作作为首要追求目标。每一本COOZINE电子杂志(电子图书)由COOZINE、JPEG图片和XML文件3部分组成。PortableScribusPortableScribus是一款类似AdobePagemaker的开源电子相册制作软件,能够用来制作个人文件、邮件列表、电子杂志类型的电子文档。它体积很小,能够放在U盘里,只需插入相应的电脑就能够使用。WindowsMovieMakerWindowsMovieMaker是普通电脑最常见的可制作电子相册的软件软件介绍:是Windows系统会自带的视频制作软件,在软件中添加图片后,将图片拖拉到时间线上,即可将添加的图片生成wmv视频。由于作为Windows系统自带软件,这款软件具有广泛的传播性,只需将相片简单制作为视频能够直接使用它。但由于软件功能繁多,在制作电子相册上效果单一,没有转场特效,也没有其它注释功能,适用于对相册效果没有太多要求的制作者选择。Premiere软件特点:premiere是一款专业级具有高级的编辑功能的电子相册制作软件,对于专业用户,它能够经过不断增加插件,和用户的专业水平进行复杂的编辑,制作出专业的绚丽相册,但由于面向专业用户,软件的操作十分复杂,上手时间很长,非专业用户使用有非常大的难度。1.2本设计的背景和研究意义制作电子相册首先要获得数字化的图片,即图片文件。用数字相机拍摄,能够直接得到电子图片文件。也能够使用普通相机拍摄,经过扫描仪得到图片文件。如果是游戏画面或VCD/DVD画面,可采用屏幕拷贝或功能更强的截屏软件获得图片。其次要对图片进行加工处理,专业人士能够使用专业级的软件Photoshop,想要操作简单快速,高画质也能够使用国内图像处理软件,实现更加精美的相册制作。最后使用电子相册制作软件将处理后的图片制作成电子相册,就能够进行观看了。1.3本设计的目标本文的目标是在AndroidSDK2.2平台下,设计了一个手机电子相册。采用了Android平台的Framework层提供的接口,实现了图片预览、图片动态切换、停止播放等功能,支持jpg,bmp,png和gif图片格式。能够让手机成为一个电子相册,让用户不必再去购买别的设备就能拥有心仪的电子相册了。1.4论文结构第一章主要介绍课题的背景和现状第二章介绍手机电子相册服务的设计实现原理第三章详细介绍了基于Android平台的手机电子相册软件的设计与开发第四章对整个论文进行了总结,并进行了展望,对软件的不足进行了分析,并说明了改进意见。电子相册研究2.1电子相册简介电子相册分为两种,一种是软件类型的电子相册,一种是硬件类型的电子相册,上文所讲的windowsmediaplayer等制作的电子相册,都属于软件类型,除此之外,还有一种电子相册为硬件类型,指能够不借助电脑能够在LCD面板上显示数码照片的电子产品的展示效果,还能够将照片显示到电视机上。还可接U盘、SD卡、MMC卡,除播放图片外,还可播放MP3、内置左右双喇叭、边播放图片边听MP3、看手机AVI格式电影、DAT格式或MPEG格式或MPG格式电影(VCD文件)、VOB格式电影(DVD文件)(其它不支持的格式能够软件转换)、输出音频视频到电视机或音响,制作这种电子相册的产品称为电子相框,《电子工程杂志》将电子相框分为3类,简易电子相框、”多媒体”电子相框高级、”多媒体”电子相框。简易数码相框只能显示JPEG格式的图片,而多媒体数码相框则能够播放音乐和视频。某些高级”多媒体”数码相框能够经过因特网从RSS、照片共享网站甚至电子邮件下载图片。这些型号一般也支持无线传输(IEEE802.11)。大部分数码相框能够像幻灯一样按可调整的时间间隔显示图片。一些相框还能够播放MP3音乐或者用相机拍摄的视频片断,比如MPEG文件。2.2电子相册的结构一个电子相册往往由三部分组成:LCD液晶面板,PCB,外部相框按钮等构件LCD面板有一个模拟或者是数字的接口,当然其面板尺寸大小可能不同。其中PCB因为容纳了设备驱动和运行固件,因而能够称得上是电子相框的核心了。2.3电子相册的性能一些数码相框只能够显示JPEG这种通用格式的图片,也就是说有些高端产品也是能够显示比如png这类型的图片格式的。大多数数码相框是以幻灯片的形式显示照片的,一般你能够经过调节切换时间间隔来达到满意的效果。当然有些还能够发送照片到打印机,甚至支持其它多媒体内容,比如记录在数码相机的电影录像模式的电影剪辑,MPEG视频文件还有MP3音频。某些相框还也能够经过互联网上的RSS,图片共享网站如Flickr,Picasa还有电子邮件这些媒介来加载图片。而具备这种网络功能的相框一般是支持无线(802.11)连接的。还有些其它的滇西电子相框能够显示txt文件的。数码相框显示的图片文件一般是从相机存储卡读取的,尽管某些相框还提供内部存储。某些框架电子相框具备使用USB接口从电脑直接传输文件到电子相框的功能。然而,由于价格过高,一般很少有数码相框内置有记忆体的。其中一些人还包括一个或者是可充电电池的。大多数7英寸(十七点五厘米)相框显示图像时候由于将图片进行了拉伸实现宽高比16:9的显示,因而存在非常明显的失真。因此,一般为了达到良好的显示效果图片文件最好也选择合适的尺寸。2.4电子相册的特点硬件类型的电子相册相比于软件类型的电子相册,具有实时性,软件类型的电子相册一经软件生成,则不需要再次生成,可直接打开和传播,而硬件类型的电子相册则实时生成,由于专为电子相册展示而制作,硬件类型的电子相册具有更大分辨率,无需再连接电脑即可显示,更可连接到电视机等硬件上播放。硬件类型的电子相册的劣势在于,不能将电子相册生成,经过U盘等介质存储共享,在传播上具有一定的局限性,也不能生成用于刻录的视频形式。第三章Andriod平台介绍3.1Android系统介绍3.1.1Android平台总体架构 下图显示的是Android操作系统的主要组件。每一部分将会在下面具体描述。图3.1Android系统架构图应用程序(Applications) Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。应用程序框架 开发人员也能够完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都能够发布它的功能块,而且任何其它的应用程序都能够使用其所发布的功能块(不过要遵循框架的安全性限制)。同样,该应用程序重用机制也使用户能够方便的替换程序组件。 隐藏在每个应用后面的是一系列的服务和系统,其中包括;丰富而又可扩展的视图(Views),能够用来构建应用程序,它包括列表(lists),网格(grids),文本框(textboxes),按钮(buttons),甚至可嵌入的web浏览器。内容提供器(ContentProviders)使得应用程序能够访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串,图形,和布局文件(layoutfiles)。通知管理器(NotificationManager)使得应用程序能够在状态栏中显示自定义的提示信息。活动管理器(ActivityManager)用来管理应用程序生命周期并提供常见的导航回退功能。窗口管理器(WindowManager)用于管理窗口的生命周期及窗口布局。程序包管理器(PackageManager)用于管理所有在Android上安装的程序包。电话管理(TelephonyManager)用于管理使用者拨打和接听电话的相关功能。程序库Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们经过Android应用程序框架为开发者提供服务。以下是一些核心库:系统C库-一个从BSD继承来的标准C系统函数库(libc),它是专门为基于embeddedlinux的设备定制的。该库遵循BSD协议,继承了GNU/Linux里glibc的大部分接口,但不完全兼容,比glibc更小,运行更快。媒体库-基于PacketVideoOpenCORE;该库支持多种常见的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG。SurfaceManager-对显示子系统的管理,而且为多个应用程序提供了2D和3D图层的无缝融合。LibWebCore-一个最新的web浏览器引擎,支持Android浏览器和一个可嵌入的web视图。SGL-底层的2D图形引擎,这是应用程序使用最多的渲染方式。3Dlibraries-基于OpenGLES1.0APIs实现;该库能够使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。FreeType-位图(bitmap)和矢量(vector)字体显示。SQLite-一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。AudioFlinger–管理声音的输出设备(喇叭,有线耳机,蓝牙耳机等),能够混合多路音频流的输出。SurfaceFlinger–管理图形、图像的显示,能够把来自不同应用的多个2D/3D图形组合,叠加;使用双缓冲机制。Android运行库 Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。包括数据结构、工具、文件访问、网络访问、图形处理等。 每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备能够同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后经过SDK中的"dx"工具转化成.dex格式由虚拟机执行。 Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制。Linux内核 Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层。3.1.2Android应用程序的构成 Android平台的应用程序主要是由以下四个组件构成的:1活动Activity2.意图Intent3.服务Service4.内容提供器ContentProvider需要注意的是,并不是每个Android应用程序都必须构建这4个组件,有些可能由这4个组件的组合而成。一旦你确定了你的应用程序中需要的组件,那么你就应该在AndroidManifest.xml中列出她们。这是一个XML配置文件,它用于定义应用程序中需要的组件、组件的功能及必要条件等。四种组件说明如下:活动ActivityActivity是Android构造块中最基本的一种,在应用中,一个Activity一般就是一个单独的屏幕。每一个Activity都被实现为一个独立的类,而且继承于Activity这个基类。这个Activity类将会显示由几个Views控件组成的用户接口,并对事件做出响应。大部份的应用都会包含多个的屏幕。例如,一个短消息应用程序将会有一个屏幕用于显示联系人列表,第二个屏幕用于写短消息,同时还会有用于浏览旧短消息及进行系统设置的屏幕。每一个这样的屏幕,就是一个Activity。从一个屏幕导航到另一个屏幕是很简单的。在一些应用中,一个屏幕甚至会返回值给前一个屏幕。当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史堆栈中。用户能够返回到历史堆栈中的前一个屏幕。当屏幕不再使用时,还能够从历史堆栈中删除。默认情况下,Android将会保留从主屏幕到每一个应用的运行屏幕。意图IntentAndroid使用了Intent这个特殊类,实现在屏幕与屏幕之间移动。Intent类用于描述一个应用将会做什么事。在Intent的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有:MAIN(activity的门户)、VIEW、PICK、EDIT等。而动作对应的数据则以URI的形式进行表示。例如:要查看一个人的联系方式,需要创立一个动作类型为VIEW的intent,以及一个表示这个人的URI。与之有关系的一个类叫IntentFilter。相对于intent是一个有效的做某事的请求,一个intentfilter则用于描述一个activity(或者IntentReceiver)能够操作哪些intent。一个activity如果要显示一个人的联系方式时,需要声明一个IntentFilter,这个IntentFilter要知道怎么去处理VIEW动作和表示一个人的URI。IntentFilter需要在AndroidManifest.xml中定义。经过解析各种Intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,activity将会调用startActivity(IntentmyIntent)方法。然后,系统会在所有安装的应用程序中定义的IntentFilter中查找,找到最匹配myIntent的Intent对应的activity。新的activity接收到myIntent的通知后,开始运行。当startActivity方法被调用将触发解析myIntent的动作,这个机制提供了两个关键好处:A、Activities能够重复利用从其它组件中以Intent的形式产生的一个请求;B、Activities能够在任何时候被一个具有相同IntentFilter的新的Activity取代。服务Service一个服务是具有一段较长生命周期且没有用户界面的程序。比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个活动,让使用者能够选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的活动,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个活动会使用+b); returnit; } File[]files=f.listFiles(); /*将所有文件存入ArrayList中*/ for(inti=0;i<files.length;i++){ Filefile=files[i]; if(getImageFile(file.getPath())) it.add(file.getPath()); } returnit; }4.3用手指移动相册里的照片 当你下决心钻研Android技术的同时,就证明你除了是一位专业的程序工程师之外,还是喜欢接触新兴技术的科技宅男/女。因此,本文相信读者对微软的Surface应该也不陌生,Surface最令人称奇的以偶能够用,就是在LED面板的桌面上,经过手指来移动桌面上的数字照片,同样也能经过手指的移动将图片放大缩小,并传输到手机中。其实,在Android的触控屏幕上,也能够作出相同的效果。 在本程序中,当程序一启动,将照片放在屏幕的中央。经过实现onTouchEvent来处理按下(ACTION_DOWN),拖动(ACTION_MOVE)、放开(ACTION_UP)等事件来完成拖动图片的效果。另外,设置ImageView的onclickListener让用户在单击图片的同时,回复图片的初始位置。实现本节功能的主要代码如下:publicbooleandispatchTouchEvent(MotionEventev){ if(ev.getAction()==MotionEvent.ACTION_DOWN){ downX=ev.getX(); } if(ev.getAction()==MotionEvent.ACTION_UP&&(ev.getX()-downX)>20){ pos++; showPicture(); }elseif(ev.getAction()==MotionEvent.ACTION_UP &&(downX-ev.getX())>20){ pos--; showPicture(); } returnsuper.dispatchTouchEvent(ev); }运行结果如下图所示:图4.1程序启动后第一界面主界面下方提供给用户能够拖动的滚动条,能够预览/sdcard/pics里面的所有图片文件。实际上,这个预览条是个Gallery,那么实现它的代码如下:gallery=(Gallery)findViewById(R.id.gallery); gallery.setAdapter(newImageAdapter(this));gallery.setOnItemSelectedListener(this);当用户拖动主界面后,会切换成下一幅图的展示:见下图,当然也能够点击下方的预览条来显示各幅图片。图4.2切换下一幅图4.4主界面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 军事理论考试重要题目和完整答案
- 新疆生产建设兵团第三师图木舒克市第一中学2025-2026学年高一上学期期末考试物理试卷(含答案)
- 2026中国在线教育平台行业市场分析供需评估投资评估规划研究报告
- 2026中国物流大数据应用场景开发及隐私保护平衡点
- 2026医疗物联网终端设备连接标准与数据互通解决方案报告
- 2026中国智能传感器行业市场深度调研及发展趋势和前景预测研究报告
- 2026中国先进半导体功率器件行业市场分析投资规划供需研究报告
- 2026中国污水处理设备市场增长潜力及投资风险预测报告
- 2026中国汽车座舱SOC芯片多屏联动与交互体验升级路径
- 2026汽车尾气净化装置产业竞争格局分析及投资发展策略报告书
- 牙关紧闭抽搐的急救护理措施
- 肿瘤多学科讨论(MDT)诊疗模式
- 质量受权人管理制度
- 酒店客房部服务标准操作流程手册
- DB44-T 1661-2021 河道管理范围内建设项目技术规程
- 小米智能家居合同协议
- 2025年党建工作知识竞赛测试题库及答案(完整版)
- TCACM 1460-2023 成年人中医体质治未病干预指南
- 轻烃装置操作(中级工)考试资料(题库版)
- 技术支持资料投标书
- 义务教育阶段中小学学生转学申请表
评论
0/150
提交评论