【醒目】分享一个关于遍历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;
}
/**
* 获得手机中的图片 (调用下面的方法,传入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;
}
相关文章推荐
- 关于一个图片分享软件
- Matlab 关于如何读取文件夹中的所有图片(3种方法)
- 一个关于图片存储,操作SD卡的工具类
- 分享一个失真度较小的图片缩小方法
- 分享关于学习new BufferedWriter()方法时常遇到的一个无厘头的问题
- Vb.net遍历一个窗口中的所有某类对象 (窗体中的控件) 的方法
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 关于Drawable资源被用在多个地方显示图片时,改变其中一个实例的状态会同时作用到其他实例的解决方法
- 关于Action访问一个方法自动调用该类中的所有方法解决方案
- 分享一个失真度较小的图片缩小方法
- 分享一个用于替换复制网页当中的图片地址并保存在服务器的上方法
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- 分享一个Spring MVC 根据图片URL,下载图片的方法
- 关于遍历一个数组的几种方法比较
- 分享一个Android设置圆形图片的特别方法
- 关于iOS中 遍历一个数组的方法
- C# 利用反射,遍历获得一个类的所有属性名,方法名,成员名
- C# 利用反射,遍历获得一个类的所有属性名,方法名,成员名.
- 先加载所有文字,最后加载图片的一个方法
- 关于IE浏览器加载图片报206错误的一个解决方法