表4.2 Gallery重要方法
方法名 返回类型 参数类型 说明
commonInit() void / 初始化处理
initControls() void / 控件获得处理
setCurrentImage() void / 设置当前图片
getAllPicsByBucketId() void / 获得传入文件夹下所有文件
showDetailsDialog() void / 显示详细信息对话框
zoomImage() void / 放大/缩小图片
showNext() void int
float 下一张图片
showPrev() void / 上一张图片
keepScreenOn() void boolean 保持屏幕长亮(幻灯片用)
hideCtrlBars() void boolean 隐藏控制按钮
setAsWallpaper() void / 设置为背景
续表4.2 Gallery重要方法
方法名 返回类型 参数类型 说明
shareToOthers() void / 分享给其他人
本模块中比较重要的流程就是幻灯片播放,新建一个线程通过handler进行调用。首先清除handler中的所有的CallBack;然后打开屏幕唤醒,保证屏幕不会自动变暗或关闭;接着隐藏控制按钮;最后向Handler中发送Runnable对象。在Handler接受到以后,继续post,直到幻灯片播放结束(Photo数组长度与当前相同),则清除再次清除Handler中的所有CallBack。其时序调用图如图4.5所示。
图4.5 文件夹/图片组浏览模块时序图
4.4 图片处理模块设计
在图片处理模块中同样有图片的浏览的功能(多点触摸放大、缩小、拖动等),实现多点触控的操作,是由实现View.onTouchListener来完成的;而其他的图片处理操作都放在了BitmapUtils中,进行图片处理操作的管理。其类图如图4.6所示。
图4.6 文件夹/图片组浏览模块类图
Process的主要功能是图片的简单处理操作,方法如表4.3所示。
表4.3 Process的相关处理函数
方法名 返回类型 参数类型 说明
initControls() void / 初始化控件
getBitmap() Bitmap long 获得取得ID的控件
showChoosenDialog() void int 选择并初始化dialog
getNowCheck() int int 获得当前选中内容
changeColor() void int 更换图片颜色处理
createWaterMark() void int 添加水印处理
changeSize() void void 更改大小处理
notifyChanged() void / 通知并设置图片变更
saveFile() void / 保存文件
4.5 数据库设计
数据库在这种管理类软件中所占比例是重中之重的,数据库使用的好坏将直接影响应用程序运行效率和运行结果。合理地设计,并使用数据库将会提高其应用程序的效率,这在嵌入式软件开发上是非常重要的。
在本程序中,使用了Android中ContentProvider提供的媒体数据库MediaProvider,其设计结构图4.2所示。其中BaseColumns中包含所有Provider的_ID字段,用来存放每个id;_COUNT字段保存了元素个数。MediaColumns包含了媒体的基本信息;ImageColumns主要用于存放图片的相关信息。使用Provider对数据进行操作时,通过以上几个接口中提供的字段,通过query()来进行查询。 基于Android系统的图片浏览器开发与设计(7):http://www.youerw.com/jisuanji/lunwen_2596.html