Cursor cur = this.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,null,null); startManagingCursor(cur); cur.movetoFirst(); while (cur.movetoNext()) { String str = cur.getString(cur.getColumnIndex(MediaStore.Images.ImageColumns.BUCKET_disPLAY_name)); Log.e("#########",str); }
这似乎就像返回目录名,
我也见过这段代码:
file images = Environment.getDataDirectory(); file[] imageList = images.Listfiles(new filenameFilter(){ public boolean accept(file dir,String name) { return ((name.endsWith(".jpg"))||(name.endsWith(".png"))); } }); String []mfiles = new String[imageList.length]; for(int i= 0 ; i< imageList.length; i++) { mfiles[i] = imageList[i].getabsolutePath(); } Uri[] mUrls = new Uri[mfiles.length]; for(int i=0; i < mfiles.length; i++) { mUrls[i] = Uri.parse(mfiles[i]); Log.e("###############","MURIS: "+mUrls[i].getEncodedpath()); }
但这是抛出一个nullpointer异常.
解决方法 您可以使用fileFilter.这是我写的一个用于返回包含图像的目录列表.从这里,修改它以返回图像列表应该相当简单:fileFilter filterForImageFolders = new fileFilter() { public boolean accept(file folder) { try { //Checking only directorIEs,since we are checking for files within //a directory if(folder.isDirectory()) { file[] listoffiles = folder.Listfiles(); if (listoffiles == null) return false; //For each file in the directory... for (file file : listoffiles) { //Check if the extension is one of the supported filetypes //imageExtensions is a String[] containing image filetypes (e.g. "png") for (String ext : imageExtensions) { if (file.getname().endsWith("." + ext)) return true; } } } return false; } catch (SecurityException e) { Log.v("deBUG","Access DenIEd"); return false; } } };
编辑:澄清一下,使用它,你会做如下的事情:
file extStore = Environment.getExternalStorageDirectory();file[] imageDirs = extStore.Listfiles(filterForImageFolders);总结
以上是内存溢出为你收集整理的android – 如何从存储在SD卡上的图像中获取图像路径全部内容,希望文章能够帮你解决android – 如何从存储在SD卡上的图像中获取图像路径所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)