基于某Android的电子相册设计与实现.docx
《基于某Android的电子相册设计与实现.docx》由会员分享,可在线阅读,更多相关《基于某Android的电子相册设计与实现.docx(43页珍藏版)》请在冰豆网上搜索。
![基于某Android的电子相册设计与实现.docx](https://file1.bdocx.com/fileroot1/2023-2/28/101db3e4-0100-4194-806a-713bc29b5f3e/101db3e4-0100-4194-806a-713bc29b5f3e1.gif)
基于某Android的电子相册设计与实现
学士学位论文
基于android的电子相册----
功能模块设计与实现
BasedontheelectronicphotoalbumAndroid
FunctionalmoduledesignandImplementation
指导老师:
姓名:
学号:
学院:
专业:
完成时间:
摘要
随着智能手机的逐渐普及,手机已经成为人们生活中不可缺少的一部分。
而如今智能手机像个人电脑一样,具有独立的操作系统。
我们可以享受智能手机给我们带来的拍照,看电影,听音乐等多媒体服务。
当然智能手机上还必须要有的一个服务就是图片浏览服务,我们可以通过图片来记录下我们生活中的美妙瞬间。
本课题是在AndroidSDK2.2平台下,实现了一个手机电子相册。
主要采用Android平台的Framework层提供的接口,实现了图片的文件夹路径的显示,图片的查看、放大、缩小等基本功能,支持jpg、bmp、png和gif图片格式,该程序是独立的apk文件,可以安装在Android2.2以上的系统版本的手机上。
本文在分析讨论Android手机软件开发技术原理的基础上,开发出能为用户提供更好的基于Android平台的图片浏览器。
以图片浏览器的页面为主线进行分析和研究的,进而研究了Android程序开发环境的搭建,Android工程文件中的各个文件的作用,程序界面的设计,程序数据的处理,图片的异步加载,防止程序的存溢出以及自定义控件的使用。
关键字:
Android;图片浏览器;智能手机平台;异步加载;存溢出
Abstract
With thepopularityof smart mobilephone, mobilephone hasbecome anindispensablepartofpeople'slife. Nowthe intelligent mobilephone likeapersonal computer, withanindependentoperatingsystem. We cantakepictures, enjoy intelligent mobilephone bringsus towatchmovies, listentomusic andothermultimedia services. Ofcourse, theintelligent mobilephonealso musthavea serviceisthe picturebrowsing service, wecan throughthepictureto recordour lifeinthe moment.
Thistopicis intheAndroidSDK2.2platform, therealizationofa mobilephoneelectronicphotoalbum. UsingFramework platformAndroidlayer providestheinterface, realizethe pathofthefolder image display, pictureoftheview, zoom,andotherbasicfunctions, supportforJPG, BMP, PNGand GIFimageformat,theprogramisindependentofthe APKfiles, systemversion canbeinstalledinmorethanAndroid2.2 mobilephone.
Inthispaper, basedonanalyzingthe principleof Android mobilephonesoftwaredevelopmenttechnology on Androidplatform, developed basedonthe imagebrowser toprovideuserswithbetter. Inthe photobrowser pagesasthemainline ofanalysisandresearch, andthenstudiedthe Android programdevelopmentenvironment tobuild the Androidprojectfile, eachfile inthe role,designoftheprocedureinterface, data processing program, asynchronousloadingpicture, preventtheprogram memory overflow andtheuseof acustomcontrol.
Keyword:
android;Photobrowser;Smartphoneplatform;Asynchronousloading;Memoryleak
第1章绪论1
1.1Android系统简介1
1.2Android系统架构1
1.3AndroidJava开发方向2
1.4组织结构2
第2章系统分析与设计3
2.1功能分析3
2.2性能分析3
2.3界面设计4
2.3.1用户界面的设计4
2.3.2功能的设计6
第3章Android开发环境的搭建8
3.1开发环境搭建需要的软件8
3.2Android开发平台的搭建8
3.2.1JDK安装8
3.2.2Eclipse的安装9
3.2.3AndroidSDK安装10
3.2.4ADT安装11
3.2.5创建ADT12
第4章程序的实现13
4.1Android项目的总体架构以及其用途13
4.2功能的实现16
4.2.1第一个界面----欢迎界面16
4.2.2第二个界面----主界面18
4.2.3第三个界面----GridView界面19
4.2.4第四个界面----单图片显示界面24
第5章总结30
参考文献31
第1章绪论
1.1Android系统简介
Android是一种以Linux为基础的开放源的操作系统,主要使用于便携设备。
目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安智”。
Android操作系统最初由AndyRubin开发,最初主要支持手机。
2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。
Android的主要竞争对手是苹果公司的ISO以及RIM的BlackberryOS。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。
1.2Android系统架构
Android的系统架构和其它操作系统一样,采用了分层的架构。
android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux核心层。
Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:
python、lua、tcl、php等等),还有其他诸如:
Qt(qtforandroid)、Mono(monoforandroid)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。
另外,谷歌还在2009年特别发布了针对初学者的AndroidSimple语言,该语言类似Basic语言。
而在网页编程语言方JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、phonegap等等都已经支持Android开发。
而在Android系统底层方面,Android使用C/C++作为开发语言。
1.3AndroidJava开发方向
Android支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从接口到功能,都有层出不穷的变化。
考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同。
其中Activity等同于J2ME的MIDlet,一个Activity类(Class)负责创建视窗(Windows),一个活动中的Activity就是在foreground(前景)模式,背景运行的程序叫做Service。
两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行效果。
如果运行中的Activity全部画面被其他Activity取代时,该Activity便被停止(Stopped),甚至被系统清除(Kill)。
View等同于J2ME的Displayable,程序人员可以通过View类与“XMLlayout”档将UI放置在视窗上,Android1.5的版本可以利用View打造出所谓的Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的AndroidHero手机即含有大量的widget。
至于ViewGroup是各种layout的基础抽象类(abstractclass),ViewGroup之还可以有ViewGroup。
View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity中,要通过findViewById()来从XML中取得View,Android的View类的显示很大程度上是从XML中读取的。
View与事件(event)息息相关,两者之间通过Listener结合在一起,每一个View都可以注册一个eventlistener,例如:
当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。
另外还有BitMap等同于J2ME的Image。
1.4组织结构
通过本软件的开发,我们可以熟悉和掌握在Android平台上的程序开发的环境的搭建,熟悉和掌握在Android平台上的程序的设计开发流程,熟悉和掌握在Android平台下编程常遇到的问题及解决办法。
第一章主要阐述了下Android的发展历史,Android的系统框架以及其Java方向的开发方面的容。
第二章主要是对系统做的功能分析,性能的分析和程序设计。
第三章主要讲述的是Android开发环境的搭建的相关问题。
第四章主要描述的是本软件开发过程中的一些要点和难点,并贴上源代码来描述解决的一些方法。
第五章是对开发该程序做一个系统性的总结。
第2章系统分析与设计
2.1功能分析
如果您经常用手机拍照,那么您的手机里一定保存着数量众多的图片文件,闲暇的时候打开来和好友分享,怎能少了手机电子相册。
本电子相册是一个功能齐全的图片浏览器,软件主要由四个界面构成:
第一个界面:
一个欢迎界面,并在其中读取数据,提高程序的效率。
第二个界面:
显示的是SD卡中所有包含了图片文件的文件夹,且以该文件夹里面的第一图片作为该文件夹的图标。
第三个界面:
当点击第二个界面的文件夹图标的时候进入第三个界面,并在其中显示该文件夹里面的所有图片。
第四个界面:
当点击第三个界面里面的某个图片的时候,进入第四个界面,显示点击的那图片,该界面实现了多点触控图片的放大和缩小功能,当往左滑时,跳转到下一图片,当往右滑的时候跳转到上一图片。
本电子相册不同于其他的软件,界面做的很友好,有欢迎界面,有文件夹,对手机中的图片进行归类,而且在第二个界面我们可以看到图片的物理地址,可以很快的找到图片的储存的文件目录。
程序的架构包含三个模块:
模块1:
程序界面。
模块2:
后台服务,后台数据处理。
模块3:
处理界面的刷新。
2.2性能分析
我认为本程序中的异步加载图片和防止程序的存溢出是重点和难点所在。
为了防止程序的存溢出,我把该程序设计成分页浏览模式,假如说图片的数量大于30的话,程序只会加载当前你所需要浏览的那一页的图片,并把以前浏览的图片所占的存给清理掉。
而图片的异步加载的目的就是为了提升用户的体验效果,假如把图片的加载放入到主线程的话,势必照成程序的响应时间变长,更有可能出现ANR(如果程序5秒钟没有反映的话,系统会弹出一个提示框),严重影响了用户的体验效果。
做手机上的图片浏览器需要面对的最大的问题是加载图片的效率问题和浏览图片时不会因为图片过多而造成存溢出,因为手机不同于电脑,手机的存是非常珍贵的,一旦存溢出的话程序就会造成异常退出,降低了用户的体验效果。
同样,当程序加载图片的速度很慢,而且滑动的时候造成很卡的话同样会降低了用户的体验效果。
所以,当用户浏览图片的时候必须异步加载图片,当用户加载的图片到达一定数量后,应该清理掉前面的图片再继续加载图片,以防程序存溢出。
2.3界面设计
2.3.1用户界面的设计
在人和机器的互动过程(HumanMachineInteraction)中,有一个层面,即我们所说的界面(interface)。
从心理学意义来分,界面可分为感觉(视觉、触觉、听觉等)和情感两个层次。
用户界面设计是屏幕产品的重要组成部分。
界面设计是一个复杂的有不同学科参与的工程,认知心理学、设计学、语言学等在此都扮演着重要的角色。
用户界面设计的三大原则是:
置界面于用户的控制之下;减少用户的记忆负担;保持界面的一致性。
电子相册的第一界面是一个欢迎界面,设计图如图2.1所示:
图2.1第一个界面设计图
这个界面有两个功能,首先就是展现欢迎界面,给用户一个友好的感觉,其次是为软件读取数据提供一个缓冲的时间,提高程序的运行效率。
电子相册的第二个界面是一个展现图片所在文件夹的界面,设计图如图2.2所示:
图2.2第二个界面设计图
在这个界面,我们可以看到手机中有多少图片的文件夹,每个文件夹下有多少图片,以及文件夹在手机中的地址。
电子相册的第三个界面就是图片的具体展现,设计图如图2.3所示:
图2.3第三个页面设计图
此界面主要是对图片展现的页面布局,采用三列,可以下拉,每页显示的行数根据手机显示屏的大小有所不一样。
电子相册的第四个页面就是每图片的具体的展示了,设计图如图2.4所示:
图2.4第四个页面设计图
此界面在手机上实现了多点触控,图片可以放大和缩小,当往左滑时,跳转到下一图片,当往右滑的时候跳转到上一图片,当跳转到第一图片,提示这已经是第一图片,当跳转到最后一图片时,提示这已经是最后一图片。
2.3.2功能的设计
功能设计就是按照产品定位的初步要求,在对用户需求及现有产品进行功能调查分析的基础上,对所定位产品应具备的目标功能系统进行概念性构建的创造活动。
功能设计是功能创新和产品设计的早期工作,是设计调查、策划、概念产生、概念定义的方法,也是产品开发定位及其实施环节,体现了设计中市场导向作用。
可以采用用户设计和专业设计或二者结合的方式。
是以消费者的潜在需求和功能成本规划为依据,设计产品的功能,经过功能的成本核算后,由专业人员进行产品设计并生产,通过定价,开展针对性的营销,使企业跳出产品同质化陷阱。
功能设计的依据是市场细分和产品定位理论的深化,市场细分方法有好多种,但归根结底都是以功能细分的。
本程序主要就是由四个界面构成,每个界面都有自己要实现的功能,针对每个界面设计功能流程图如图2.5所示:
图2.5功能设计流程图
从第一界面到第二个界面是不需要交互的,是程序运行的过度阶段,这里主要实现遍历SD卡中的图片这个功能;第二个界面是主界面,这里要实现显示包含图片的文件夹的功能,并且能够显示出文件夹所在的路径;第三个界面是查看文件夹中具体照片的界面,这里要实现异步加载的功能;第四个界面是单图片的显示,这里要实现多点触控、放大、缩小和切换图片的功能;从此流程图,我们不难发现,本电子相册是一个功能齐全的简单易用的程序。
第3章Android开发环境的搭建
3.1开发环境搭建需要的软件
(1)jdk-6u18-windows-i586.exe
(2)eclipse-standard-kepler-R-win32.zip
(3)android-sdk-windows-1.5_r1.zip
(4)ADT插件
(5)android系统手机一部(图片浏览器中的多点触控的功能不能在android模拟器上测试)
3.2Android开发平台的搭建
3.2.1JDK安装
如果你还没有JDK的话,可以去这里下载,接下来的工作就是安装提示一步一步走。
设置环境变量步骤如下:
我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量:
JAVA_HOME值为:
D:
\ProgramFiles\Java\jdk1.6.0_18(你安装JDK的目录)
CLASSPATH值为:
.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\bin;
Path:
在开始追加%JAVA_HOME%\bin;
NOTE:
前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。
当然在安装过程要注意一下,360安全卫士可能会提示木马防火墙,大家要选择“允许程序的所有操作”,否则可能会造成JDK安装不完整。
JDK的环境变量经配置完成后,可以通过打开命令提示符窗口,输入命令“java–version”,看到Java版本的信息,来确定安装是否成功。
首先点击“开始”,然后点击“运行”,输入“cmd”,按“Enter”键,然后会出现命令提示符窗口的输入界面,输入命令“java–version”。
当出现类似如图3.1的画面表示安装成功了:
图3.1命令窗口
3.2.2Eclipse的安装
打开官网eclipse.org,点击菜单栏上面的download,选择红框里面的下载,如图,若你的电脑是32位的则点第一个,64位的点第二个,进入下载页面,一般点击红框里面的网址就可以下载了,下载完毕,你会在你保存的地方看到一个压缩包文件,它就是eclipse。
右键你下载的压缩包,解压,解压完毕后即可使用,进入文件夹,就可以看到eclipse的启动程序,第一次打开要设置工作环境,你可以选择在别的盘或者默认c盘,点击ok,现在就成功的进入eclipse了。
现在还不能进行Android的开发,还要安装其他的组件。
图3.2eclipse首页
3.2.3AndroidSDK安装
在AndroidDevelopers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。
运行SDKSetup.exe,点击AvailablePackages。
如果没有出现可安装的包,请点击Settings,选中Misc中的"Forcehttps:
//..."这项,再点击AvailablePackages。
选择希望安装的SDK及其文档或者其它包,点击InstallationSelected、AcceptAll、InstallAccepted,开始下载安装所选包。
在用户变量中新建PATH值为:
AndroidSDK中的tools绝对路径(本机为D:
\AndroidDevelop\android-sdk-windows\tools)。
图3.3设置AndroidSDK的环境变量
“确定”后,重新启动计算机。
重启计算机以后,进入cmd命令窗口,检查SDK是不是安装成功。
运行android–h如果出现类似如图3.4所示的输出,表明安装成功:
图3.4验证AndroidSDK是否安装成功
3.2.4ADT安装
打开EclipseIDE,进入菜单中的"Help"->"InstallNewSoftware"。
点击Add...按钮,弹出对话框要求输入Name和Location:
Name自己随便取,Location输入dl-ssl.google./android/eclipse。
如图3.5所示:
图3.5安装ADT
确定返回后,在workwith后的下拉列表中选择我们刚才添加的ADT,我们会看到下面有DeveloperTools,展开它会有AndroidDDMS和AndroidDevelopmentTool,勾选他们。
如图3.6所示:
图3.6安装ADT组件
然后就是按提示一步一步next。
完成之后,选择Window>Preferences...。
在左边的面板选择Android,然后在右侧点击Browse...并选中SDK路径,本机为:
D:
\AndroidDevelop\android-sdk-windows。
点击Apply、OK,配置完成。
3.2.5创建ADT
为使Android应用程序可以在模拟器上运行,必须创建AVD。
1、在Eclipse中。
选择Windows>AndroidSDKandAVDManager
2、点击左侧面板的VirtualDevices,再右侧点击New
3、填入Name,选择Target的API,SDCard大小任意,Skin随便选,Hardware目前保持默认值
4、点击CreateAVD即可完成创建AVD
注意:
如果你点击左侧面板的VirtualDevices,再右侧点击New,而target下拉列表没有可选项时,这时候你:
点击左侧面板的AvailablePackages
在右侧勾选https:
//dl-ssl.google./android/repository/repository.xml,如图3.7所示:
图3.7安装ADT组件
然后点击InstallSelected按钮,接下来就是按提示做就行了,要做这两步,原因是在AndroidSDK安装中没有安装一些必要的可用包(AvailablePackages)。
第4章程序的实现
4.1Android项目的总体架构以及其用途
首先,用Eclipse新建一个Android项目,项目会自动生成一些目录及文件,如图4.1所示:
图4.1项目文件
这些自动生成的目录及文件是组成Android应用程序的必需部分,它们在应用程序中所起到的作用和主题功能如下:
src:
该目录用来存放项目的源文件,当项目刚创建时,该文件夹中包含activity的源文件,以后用户创建的所有源文件也都将存放在该文件夹中。
gen:
该文件夹中包含一个在创建项目时自动生成的R.java