您的位置:首页 > 其它

【醒目】分享一个关于遍历SD卡中所有图片的方法

2013-09-19 17:18 302 查看
最近在做一个相册,所以各种设法,终于弄出了遍历SD卡或者手机自带内存中所有图片的方法

/**

* 获得手机中的图片 (调用下面的方法,传入SD卡的路径,如果想遍历手机内存的话那就把路径改成手机内存就行了)

* @param context

* @return

*/

public HashMap<String, ArrayList<String>> getAllPicture(){

String sdpath = Environment.getExternalStorageDirectory().toString()+"/";//自定义文件夹目录

File sdfile = new File(sdpath);

getAllFiles(contexts, sdfile);

return hashMap;

}

/**

* 传入路径,获得所有文件 (这个就是循环遍历SD卡中的所有文件,如果是图片的话那就保存的一个hashmap 中,键值是图片的路径)

* @param filepath

* @throws MalformedURLException

*/

private void getAllFiles(Context context, File file){

listsdAllPic = new ArrayList<String>();

File files[] = file.listFiles();

if(files != null && files.length != 0){

for(File f:files){

if(f.isDirectory() && f != null){

if(listsdAllPic.size() != 0){

hashMap.put(picPath, listsdAllPic);

picPath = null;

}

getAllFiles(context,f);

}else if(sDandPhone.JudgeImageForm(context, f.getPath())){

picPath = sDandPhone.getPicturePath(f.getPath().toString());

listsdAllPic.add(f.getPath().toString());

}

}

}

}

/**

* 判断所搜索到的文件是否为图片格式(判断是否是图片,如果想找音频的话那就把文件后缀改成音频的格式就行了)

* @param mysdlist 文件名字

* @return

*/

static boolean imageForm;

public boolean JudgeImageForm(Context context, String mysdlist) {

String filename = mysdlist.substring(mysdlist.lastIndexOf(".") + 1,mysdlist.length()).toLowerCase();// 截取文件名字的后缀并转化为小写

if (filename.equals("jpg") || filename.equals("png")|| filename.equals("gif") || filename.equals("jpeg")|| filename.equals("bmp")) {

imageForm = true;

} else {

imageForm = false;

}

return imageForm;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐