android中获取sd卡下的图片资源.docVIP

  • 5
  • 0
  • 约4.02千字
  • 约 5页
  • 2017-03-26 发布于贵州
  • 举报
android中获取sd卡下的图片资源android中获取sd卡下的图片资源

当我想做一个相册的时候,我需要的获得SD卡下所有图片的路径path,然后利用Bitmap的方法画到到画布canvas上。 我该如何获得SD卡下的图片路径呢? 其实在没有做好研究的之前我走了好多弯路,并且还是一个错误的弯路。 首先我先获得SD卡下的根目录路径: privateString isSdcard(){ File sdcardDir=null; boolean isSDExist=Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED); if(isSDExist){ //如果存在SDcard就找到跟目录 sdcardDir=Environment.getExternalStorageDirectory();return sdcardDir.toString(); }else { return null; } } } 找到/sdcard之后,就开始利用File[] f = file.listFile();的方法获得目录下的所有文件的列表。 public void getpicpath(String sdpath){ //打开SD卡目录 File file = new File(sdpath); //获取SD卡目录列表 File[] files =file.listFiles(); for(int z=0;zfiles.length;z++){ File f = files[z]; if(f.isFile()){ isfile(f); }else { notfile(f); } } } 如果是文件的话,就跳入isfile(File file);的方法中,如果是文件夹的话就跳入notfile(File file);方法中。 public void isfile(File file){ Log.i(TAG, isfile); String fnm=file.getPath(); Log.i(TAG, isfile==+fnm); mapsd=new HashMapString, String(); String filename=file.getName(); int idx = filename.lastIndexOf(.); if (idx = 0) { return; } String suffix =filename.substring(idx+1, filename.length()); if (suffix.toLowerCase().equals(jpg) || suffix.toLowerCase().equals(jpeg) || suffix.toLowerCase().equals(bmp) || suffix.toLowerCase().equals(png) || suffix.toLowerCase().equals(.gif) ){ mapsd.put(imagepath,file.getPath().toString()); listsd.add(mapsd); } } 如果是有文件isfile 就配合他文件名的后缀名是否为图片,是的话放进mapsd中,再加到list中。 如果有文件是文件夹的话,就继续用file.listFile()打开它的文件夹里面的内容,再用for语句判断它里面的文件是否有文件,如果有就isfile();无,就利用getpicpath()打开它。 public void notfile(File file){ Log.i(TAG, notfile Yes); Log.i(TAG, notfilepath+file.getPath()); File[] files = file.listFiles(); if(files ==null){ return; } for(int i = 0;ifiles.length;i++){ Log.i(TAG,notfile int=+String.valueOf(files.length)); File fis=files[i]; if(fis.isFile()){ isfile(fis); }else{ String SDpath=fis.getPath(); File fileSD=new File(SDpath); Log.i(TAG,notfile =+fileSD); File[] filess=fileSD.listFiles(); if(filess ==null){ return; } for(int j=0;jfiless.length;j++){ getpicpath(fileSD.toString()); } } } }

文档评论(0)

1亿VIP精品文档

相关文档