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

最近在做一个相册,所以各种设法,终于弄出了遍历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;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值