【android开发】手写签名系统的设计与实现之实现文件夹以及文件列表显示(一)

 随着移动设备的普及,人们越来越依赖移动设备,它带给人们许多的方便。其中手写签名,在一些金融行业使用较为普遍,目前手写签名系统有几款很不错,免费使用的不多。由于前一段时间项目需要,做了一个简单的手写签名系统,不是很完善,不过对于一般的需求是可以满足的,主要是针对pdf文件进行的操作,现在拿来给大家分享,希望有好的实现方式,能指点一下,大家共同进步。我们先看一下效果图:

           选择打开pdf文件                                 进入主界面                                选择要签名的位置

                    

         设置画笔的属性                                  在画板上签字                             预览签字效果

                  

一、模块划分:

1、文件查看模块

2、pdf解析模块

3、手写模块

4、生成新的pdf模块

  我们将针对每一个模块进行介绍,今天我们先介绍第一个模块---文件查看模块的实现原来及过程。

二、实现原理:

使用File类,读取当前文件夹中的所有文件及文件夹,并放在list集合中:

tems = new ArrayList<String>();
		paths = new ArrayList<String>();
		
		File presentFile = new  File(path);
		File[] files = presentFile.listFiles();
		// 显示当前路径,并返回根目录
		items.add("当前路径:"+path+" 文件个数:"+files.length);
		paths.add(rootPath);
		if (! path.equals(rootPath)) {
			// 返回上一级目录
			items.add("Back");
			paths.add(presentFile.getParent());
		}
		// 添加当前路径下的所有的文件名和路径
		for (File f : files) {
			items.add(f.getName());
			paths.add(f.getPath());
		}

最后将集合传给适配器,通过对文件名来判断文件类型:

// 设置列表适配器
		setListAdapter(new FileListAdapter(FileActivity.this, items, paths));
File f = new File(paths.get(position));
			//如果f表示的是一个目录则返回true
			if(f.isDirectory()){
				if(fileName.contains("当前路径")){
					holder.imageIcon.setImageBitmap(rootIcon); 
				}else if(fileName.equals("Back")){
			    	holder.imageIcon.setImageBitmap(prevIcon); 
			    }else if(f.canRead()){
					holder.imageIcon.setImageBitmap(folderIcon); 					
				}else{
					holder.imageIcon.setImageBitmap(NotReadfolderIcon); 					
				}
			}else{
				if(f.canRead()){
					//判断文件类型
					if(fileName.contains(".pdf")){
						holder.imageIcon.setImageBitmap(PdfFileIcon);
					}else if(fileName.contains(".apk")){
						holder.imageIcon.setImageBitmap(APKFileIcon);
					}else if(fileName.contains(".mp3") || fileName.contains(".ape") || fileName.contains(".flac")){
						holder.imageIcon.setImageBitmap(MP3FileIcon);
					}else if(fileName.contains(".png") || fileName.contains(".jpg") || fileName.contains(".bmp")){
						holder.imageIcon.setImageBitmap(PicFileIcon);
					}else{
						holder.imageIcon.setImageBitmap(docIcon); 
					}						
				}else{
					holder.imageIcon.setImageBitmap(NotReaddocIcon);			
				}
			}
事前将不同文件及文件夹的图片保存到bitmap对象中:

// 初始化关联图标
		rootIcon = BitmapFactory.decodeResource(context.getResources(), 
				R.drawable.sym_keyboard_shift);
		prevIcon = BitmapFactory.decodeResource(context.getResources(), 
				R.drawable.sym_keyboard_return);//返回上一级菜单
		docIcon = BitmapFactory.decodeResource(context.getResources(), 
				R.drawable.ic_gesturebuilder);//显示文本文件
		NotReaddocIcon = BitmapFactory.decodeResource(context.getResources(), 
				R.drawable.ic_gesturebuilder_notread);//显示文本文件
		folderIcon = BitmapFactory.decodeResource(context.getResources(), 
				R.drawable.live_folder_notes);//显示文件夹
		NotReadfolderIcon = BitmapFactory.decodeResource(context.getResources(), 
				R.drawable.live_folder_cnntread);//显示不可读文件夹
		PdfFileIcon = BitmapFactory.decodeResource(context.getResources(), 
				R.drawable.ico_pdf);
		APKFileIcon = BitmapFactory.decodeResource(context.getResources(), 
				R.drawable.apk_icon);
		MP3FileIcon = BitmapFactory.decodeResource(context.getResources(), 
				R.drawable.mp3);
		PicFileIcon = BitmapFactory.decodeResource(context.getResources(), 
				R.drawable.picture);

通过上面我们看到,对文件的操作主要还是用到了file类,实现一个文件目录其实是很简单的。

到此,文件目录已经完成了,今天说的是比较简单的,详细代码就不全部贴出来了,在最后边将把代码下载链接留给大家,需要的朋友可以下载看看。明天我们将会介绍比较重要的模块-解析pdf。欢迎大家继续关注,对于不足之处敬请指正,大家一起进步,上传资源已经运行,没有问题,如果你不能运行,请在博客留言……

【android开发】手写签名系统的设计与实现之实现文件夹以及文件列表显示(一)


  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值