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

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

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

                    

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

                  

一、模块划分:

1、文件查看模块

2、pdf解析模块

3、手写模块

4、生成新的pdf模块

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

二、实现原理:

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

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. tems = new ArrayList<String>();  
  2.         paths = new ArrayList<String>();  
  3.           
  4.         File presentFile = new  File(path);  
  5.         File[] files = presentFile.listFiles();  
  6.         // 显示当前路径,并返回根目录  
  7.         items.add("当前路径:"+path+" 文件个数:"+files.length);  
  8.         paths.add(rootPath);  
  9.         if (! path.equals(rootPath)) {  
  10.             // 返回上一级目录  
  11.             items.add("Back");  
  12.             paths.add(presentFile.getParent());  
  13.         }  
  14.         // 添加当前路径下的所有的文件名和路径  
  15.         for (File f : files) {  
  16.             items.add(f.getName());  
  17.             paths.add(f.getPath());  
  18.         }  

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

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. // 设置列表适配器  
  2.         setListAdapter(new FileListAdapter(FileActivity.this, items, paths));  
[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. File f = new File(paths.get(position));  
  2.             //如果f表示的是一个目录则返回true  
  3.             if(f.isDirectory()){  
  4.                 if(fileName.contains("当前路径")){  
  5.                     holder.imageIcon.setImageBitmap(rootIcon);   
  6.                 }else if(fileName.equals("Back")){  
  7.                     holder.imageIcon.setImageBitmap(prevIcon);   
  8.                 }else if(f.canRead()){  
  9.                     holder.imageIcon.setImageBitmap(folderIcon);                      
  10.                 }else{  
  11.                     holder.imageIcon.setImageBitmap(NotReadfolderIcon);                       
  12.                 }  
  13.             }else{  
  14.                 if(f.canRead()){  
  15.                     //判断文件类型  
  16.                     if(fileName.contains(".pdf")){  
  17.                         holder.imageIcon.setImageBitmap(PdfFileIcon);  
  18.                     }else if(fileName.contains(".apk")){  
  19.                         holder.imageIcon.setImageBitmap(APKFileIcon);  
  20.                     }else if(fileName.contains(".mp3") || fileName.contains(".ape") || fileName.contains(".flac")){  
  21.                         holder.imageIcon.setImageBitmap(MP3FileIcon);  
  22.                     }else if(fileName.contains(".png") || fileName.contains(".jpg") || fileName.contains(".bmp")){  
  23.                         holder.imageIcon.setImageBitmap(PicFileIcon);  
  24.                     }else{  
  25.                         holder.imageIcon.setImageBitmap(docIcon);   
  26.                     }                         
  27.                 }else{  
  28.                     holder.imageIcon.setImageBitmap(NotReaddocIcon);              
  29.                 }  
  30.             }  
事前将不同文件及文件夹的图片保存到bitmap对象中:

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. // 初始化关联图标  
  2.         rootIcon = BitmapFactory.decodeResource(context.getResources(),   
  3.                 R.drawable.sym_keyboard_shift);  
  4.         prevIcon = BitmapFactory.decodeResource(context.getResources(),   
  5.                 R.drawable.sym_keyboard_return);//返回上一级菜单  
  6.         docIcon = BitmapFactory.decodeResource(context.getResources(),   
  7.                 R.drawable.ic_gesturebuilder);//显示文本文件  
  8.         NotReaddocIcon = BitmapFactory.decodeResource(context.getResources(),   
  9.                 R.drawable.ic_gesturebuilder_notread);//显示文本文件  
  10.         folderIcon = BitmapFactory.decodeResource(context.getResources(),   
  11.                 R.drawable.live_folder_notes);//显示文件夹  
  12.         NotReadfolderIcon = BitmapFactory.decodeResource(context.getResources(),   
  13.                 R.drawable.live_folder_cnntread);//显示不可读文件夹  
  14.         PdfFileIcon = BitmapFactory.decodeResource(context.getResources(),   
  15.                 R.drawable.ico_pdf);  
  16.         APKFileIcon = BitmapFactory.decodeResource(context.getResources(),   
  17.                 R.drawable.apk_icon);  
  18.         MP3FileIcon = BitmapFactory.decodeResource(context.getResources(),   
  19.                 R.drawable.mp3);  
  20.         PicFileIcon = BitmapFactory.decodeResource(context.getResources(),   
  21.                 R.drawable.picture);  

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值