基于Android的文件浏览器的开发与实现
1.系统文件与用户应用文件及应用程序切换。采用树结构,列表,缩略图显示,排序(日期、大小、格式、名称)、文件拖拽。
2.搜索功能(调用输入法)。
3.基本控制操作:返回上一级,前进,撤消。
4.不同文件调用不同其他软件。针对音乐、图象填加使用功能。图象:设壁纸、屏幕保护、联系人头像、填加新联系人,设分组头像、编辑图象;音乐:设铃声、信息提示、闹钟、日历提醒、聊天室。
5.如有可能填加蓝牙(手机访问手机、电脑访问手记),上传网络,添加到邮件功能。
3.2功能模块设计概述
基本功能模块的实现是要实现基于android的文件浏览器的一些基本功能,像文件浏览器的文件列表的创建,实现文件浏览功能,文件打开功能,文件属性修改,文件夹加密,文件夹解密,文件隐藏,文件显示,文件浏览器的菜单自动显示,新建文件夹,删除文件夹,修改文件夹的属性,隐藏文件夹,显示隐藏文件夹,新建文件,删除文件,以及主界面的设计与开发实现。
文件浏览器的主界面由最上方的文件管理位置、中上方的导航标签栏和下方的显示栏内容构成。用户通过本地位置,可以管理当前手机和SD卡上的文件;通过共享位置,管理在局域网内的其他终端上的文件;通过远程位置,访问FTP服务器上的内容。
搜索功能:用户可以通过此功能选择搜索类型或者输入关键词的方式,搜索SD卡上的内容;而最后一个标签是视图切换功能,用户可以在图标横排和列表状态下选择。
用户可以通过长按文件/文件夹的方式,选择一系列操作方式。如常见的打开、剪切、复制、删除、重命名、全选、压缩、发送、属性等。
在这里提到的发送,和通常大家在手机上显示的发送功能不同,因为其不是通过彩信、蓝牙、红外线等,而是以Gmail和邮件的方式发送该文件;此外,其提供zip和gz两种压缩格式,通过压缩文件的格式,为用户留出更多的可用空间。[15]
与其他手机软件类似,文件浏览器的设置功能还是丰富多彩的。从主题内容到布局设置,从视图变更到偏好设置,处处体现了文件浏览器提供给用户个性化的服务。比如我们为了随时了解SD卡的存储情况,打开了SD卡容量在地址栏上的显示。
第 12 页 共 56 页
基于Android的文件浏览器的开发与实现
用户在文件浏览器的设置功能中,还可以看到其实验产品——蓝牙选项。Android Rom在3.0以下的版本,需要首先拥有最基层的root权限才可以使用。用户在开启该功能并打开蓝牙后,就可以其他蓝牙终端,访问该终端中的资料。
文件浏览器还提供了本地和远程网络共享的功能。用户可以通过本地共享、FTP远程和蓝牙等三种模式,用户可以在手机远程在移动和桌面终端之间分享文件,传输、操作;软件能独立打开媒体文件,浏览图片,编辑文本,甚至可以远程播放媒体文件。我这边对功能模块进行了一下归纳总结的除了一个比较鲜明的基本模块如图3.1
图3.1 本地模块例图
在文件浏览器的本地基本功能中我们实现了文件的基本浏览功能,其中包括文件的拷贝、文件隐藏、文件删除、文件发送、文件更名、文件粘贴、文件编辑、文件发送、文件接收功能,实现了相关文件的调用、给相关软件的调用预留了借口,同时实现了文件浏览器的一些自身的扩展。当我们启动文件浏览器的时候,系统会自动的进入默认的目录。来显示这个根目录下的所有文件及文件夹、同时按照不同的文件类型文件扩展名
第 13 页 共 56 页
基于Android的文件浏览器的开发与实现
来自动识别文件,给文件分配不同的图标,这样的话用户只要看到我们显示给用户的很容易识别的小图标,就会很快的知道目前目录下有那些类型的问价,那些是可以使用的,那些是音乐文件,那些是图片文件,这样对用户来说就很容易的对问价进行分类,也有利于用户寻找目标文件、选择文件。有了分类显示文件,只要用户在实际应用过程中有了一定程度的使用经验,对文件浏览器的实用会更加得心应手。[17]
在以上对文件浏览器的本地基本操作模块的描述之后,能使用户在理解文件浏览器浏览器的使用过程上有进一步提升,对本软甲有进一步的了解,能在以后的实际应用中更快的上手,对文件浏览器的最基本最重要的一个模块之一会有一个更加深刻的理解。
3.3项目部分代码以及注释
本章主要介绍本项目的一些代码及注释,最后会展示一部分功能, 3.3.1文件目录显示代码及注释
/**
*创建文件列表类
*该类继承于ListActivity使之有文件列表功能 */
public class FileList extends ListActivity { /**
*创建文件列表
*列表功能,文件列表功能可以将文件存入列表中 *列表是私有属性,只能自己调用 */
private List
*当Android活动第一次启动的时候调用OnCreate()函数 *OnCreat()函数是继承于父类ListActivity */
@Override
public void onCreate(Bundle icicle) {
第 14 页 共 56 页
基于Android的文件浏览器的开发与实现
super.onCreate(icicle); /**
*设置视图的布局格式为线性布局 *创建文件的根目录 *将根目录加入文件列表中 */
setContentView(R.layout.directory_list); fill(new File(\} /**
*设置点击方法
*方法onListItemClick监听文件列表的点击事件 *该方法onListItemClick使受保护的方法 */
@Override
protected void onListItemClick(ListView l, View v, int position, long id) { /**
*获取到点击行的ID,返回类型为整形 *判断获得的ID是不是为0
*如果获得ID为0则说明选择的是根目录进而显示根目录 *如果ID不为0则没有选择根目录 *传如选择文件列表的ID号 *再次判断ID是不是在文件目录中 *如果文件ID在目录中则调用显示目录方法 *如果不在文件目录里则弹出提示框 *提示语为That's a file, not a directory *用户选择按钮返回false值 */
int selectionRowID = (int) getSelectionRowID(); if (selectionRowID == 0) {
第 15 页 共 56 页
基于Android的文件浏览器的开发与实现
}
}
fillWithRoot();
File file = new File(items.get(selectionRowID)); if (file.isDirectory())
fill(file.listFiles());
AlertDialog.show(this, \
\
else
} else {
这段程序主要实现了文件浏览器的文件列表显示功能,我们新建了一个类,类名字叫FileList这个类继承与ListActivity这样的话,这个类就有了类似于Java中的List类所实现的功能,能够显示列表,而ListActivity类有继承于Activity类,这个类是android系统的最基本的类之一,有这个类的话,ListActivity就是一个activity,就可以用来显示。而FileList就是一个activity,可以用来显示,而且他还有一些Java中的List类的相似的功能。
进而设置文件浏览器的布局方式为现行布局,调用文件浏览器源代码的布局文件,在布局文件中设置文件浏览器的布局方式。
接下来就是FileList这个类重写了父类里面的一个方法OnCreat方法,这个方法用于生成程序的界面,当工程的源代码运行的时候,启动虚拟设备,这时就是android的一个activity,所以系统就会找到源代码的的OnCreat方法,生成一个可视的界面。
因为生成的文件目录是用List方式来显示的,这样的话,每个历List就有自己独一无二的Id,当我们点击相应的List列的时候,就会有一个单击监听器对用户的活动进行监听,在监听器中对点击的Id进行判断,如果判断Id是0的话则意味着用户选择的是根目录,如果选的不是根目录就打开相应的文件或者目录。 3.3.2返回上一级目录代码及注释
//返回上一级目录
private void upOneLevel() {
if(this.currentDirectory.getParent() != null)
this.browseTo(this.currentDirectory.getParentFile());
第 16 页 共 56 页