Android电子相册设计报告Word格式文档下载.doc
《Android电子相册设计报告Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《Android电子相册设计报告Word格式文档下载.doc(13页珍藏版)》请在冰豆网上搜索。
1.3安卓电子相册功能需求 1
2软件总体设计 2
2.1电子相册功能设计 2
2.2电子相册软件流程图 2
2.3电子相册UI设计 3
3关键技术分析 5
4软件详细设计 5
4.1获取文件格式 6
4.2获取图片文件列表 6
4.3用手指移动相册里的照片 7
4.4主界面的图片切换 8
5软件测试方案 10
6设计总结 11
7参考资料 11
基于AndroidSDK2.2平台的手机电子相册设计方案
1软件需求分析
1.1Android平台背景
Android平台对我们来说已经不陌生了,从08年Google推出Android系统,已经经历了2年多的发展,目前最新的版本是Android4.4。
Google主持开发Android平台,其目的是推动全世界30亿手机用户,更方便、成本更低地访问互联网。
Google公司宣称的目标是“组织世界上所有信息,让所有人方便地访问”。
Google认为,手机价格越来越低,而其中手机平台的价格变化不大,在手机成本中所占比例越来越大。
基于此,Google希望提供一个免费、开放、功能强大的手机操作系统,使用户承担的手机价格更低,同时更方便、更频繁地访问互联网。
当然,Google本身也将因此而受益。
因为Android的免费、开源、性能优越,故其目前稳坐手机系统平台第一把交椅,数量占智能手机终端的近80%,由此可见其普及型。
安卓应用更是数不胜数,无论对于普通智能手机用户还是手机应用开发者,安卓平台都成为了首要考虑目标。
故本电子相册选择Android开发平台,开发出一款免费、实用、性能优越、受市场欢迎的手机应用。
1.2安卓电子相册市场需求
电子相册是指可以在电脑上或者是在移动终端上观赏的区别于CD/VCD的静止图片的特殊文档,其内容不局限于摄影照片,也可以包括各种艺术创作图片。
电子相册具有传统相册无法比拟的优越性:
图、文、声、像并茂的表现手法,随意修改编辑的功能,快速的检索方式,永不褪色的恒久保存特性,以及廉价复制分发的优越手段。
因为本安卓电子相册为软件实现,可随意修改其内容,个性设计电子相册风格,便于携带、浏览与分享,且免费,所以受广大安卓手机用户追捧。
但目前安卓应用市场上并无十分成熟、广受多数用户喜爱的电子相册制作软件,多为小应用、小软件。
1.3安卓电子相册功能需求
相比于PC端电子相册制作软件,Android电子相册软件还有很多局限性,但其便捷灵巧,相比之下有其独特的优势。
作为手机软件,电子相册制作软件要易于操作:
为用户提供多种模板,使用户能够快捷的编辑手机上的图片,制作成自己独特的电子相册;
软件还要能够导出制作完成的电子相册,最好是视频形式,使用户方便浏览与分享;
软件应设置分享功能,使用户可以通过蓝牙或社交网络分享自己的杰作。
2软件总体设计
2.1电子相册功能设计
本Android电子相册要实现的功能有:
Ø
添加/删除图片
图片预览
开始/暂停/停止播放图片
动态切换图片
视频导出制作好的电子相册
通过蓝牙、QQ、微信、微博等分享电子相册视频
2.2电子相册软件流程图
Android电子相册
显示图片
编辑图片
保存与分享
保存相册
缩放图片
旋转图片
动态播放图片
导出相册
添加图片
删除图片
分享相册
切换图片
美化图片
图1系统功能模块
启动程序
读取/sdcard/pic下的图片文件,是否空?
操作
图片
提示用户
没有图片文件
退出
显示/sdcard/pic下的图片文件
重试或退出
图2程序流程图
2.3电子相册UI设计
图3电子相册启动界面
图4电子相册主界面
考虑到使用电子相册软件的最广大用户群为青少年,故UI设计应该或活泼开放,或简洁鲜亮,或炫酷超拽,散发出青春的气息。
另外要与主流的软件操作界面相似,菜单与设置项沿用Google系统应用的风格。
图5新建相册并配置(本图来自网络)
图6浏览并选择图片(本图来自网络)
图7电子相册浏览示例(本图来自网络)
本设计方案就是在Android平台上,基于SDK2.2开发的一款电子相册软件,包括图片预览、图片播放、动态切换、停止播放等功能。
当然,由于时间的关系,本方案仅实现了电子相册的基础功能,后续还有很多工作可以完善和深入。
3关键技术分析
FadeIn/FadeOut特效与运行线程。
虽然手机可以通过系统设置(Setting),在闲置数秒或者数分钟后会自动进入省电模式,也即关闭背光,进而达到省电的效果。
这个屏幕保护程序(ScreenSaver)则是通过避免同一个静止图片或画面在LCD上久滞不动,以达到保护屏幕的效果。
本节所要实现的重点如下:
v控制与判别User静止未触碰手机键盘或屏幕的时间及其事件
v设计动态全屏幕淡入(Fade-In)、淡出(Fade-Out)图片的交替效果
以上这两个重点都需要通过线程(Thread)来实现,以时间戳记的方式,判断距离上一次单击手机键盘、屏幕的时间,并计量两次的时间间隔,当超过了指定的描述(默认为5秒)则自动进入保护程序。
4软件详细设计
编写Android电子相册并不复杂,只需要继承Activity类就可以了,当然,内部还需要实现很多细节功能,包括识别文件、获取图片文件列表、监听触摸屏事件并作出响应、动态切换图片等功能。
4.1获取文件格式
要显示程序,就要先确定Android平台都支持显示什么格式的图片文件,经过研究,得知Android平台可以显示至少包括Jpg,gif,png,bmp四种格式的图片文件,所以,本程序首先要获取到图片格式的文件,其他格式文件不列入显示范围。
代码如下:
/*取得扩展名*/
Stringend=fName
.substring(fName.lastIndexOf("
."
)+1,fName.length())
.toLowerCase();
/*按扩展名的类型决定MimeType*/
if(end.equals("
jpg"
)||end.equals("
gif"
png"
)
||end.equals("
jpeg"
bmp"
)){
re=true;
}else{
re=false;
}
4.2获取图片文件列表
主程序使用了ArrayList作为自定义SD卡访问图片文件列表之用,getImagelist()函数不需要传入路径,而是利用File对象与循环取得图片文件列表。
privateList<
String>
getImagList(){
/*设定目前所在路径*/
List<
it=newArrayList<
();
Filef=newFile("
/sdcard/pics"
);
if(!
f.exists()){
booleanb=f.mkdir();
Log.d("
mkdir"
"
mkdir:
"
+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用手指移动相册里的照片
在本程序中,当程序一启动,将照片放在屏幕的中央。
通过实现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())>
pos--;
returnsuper.dispatchTouchEvent(ev);
运行结果如下图所示:
图8浏览已选图片(本图来自网络)
主界面下方提供给用户可以拖动的滚动条,可以预览/sdcard/pics里面的所有图片文件。
实际上,这个预览条是个Gallery,那么实现它的代码如下:
gallery=(Gallery)findViewById(R.id.gallery);
gallery.setAdapter(newImageAdapter(this));
gallery.setOnItemSelectedListener(this);
当用户拖动主界面后,会切换成下一幅图的展示:
见下图,当然也可以点击下方的预览条来显示各幅图片。
图9切换下一幅图(本图来自网络)
4.4主界面的图片切换
本程序提供给用户播放图片和停止播放的功能菜单,Android平台添加菜单的代码如下:
publicbooleanonCreateOptionsMenu(Menumenu){
menu.add(0,MENU_SHOW,0,R.string.auto_show_picture);
menu.add(0,MENU_STOP,0,R.string.stop_show_picture);
returnsuper.onCreateOptionsMenu(menu);
那么,当用户点击菜单后,如果响应呢?
要使用下面