您的位置:首页 > 移动开发 > Android开发

android扫描sdcard中的音视频及图片等文件

2014-06-16 21:40 281 查看
From:http://www.it165.net/pro/html/201304/5483.html
如题,现在的很多应用都有自动扫描sdcard文件的功能,例如天天动听等音乐播放器导入音乐的时候、还有一些阅读应用导入本地文本也有扫描功能。最近做一个练习,写到这个功能,只是简单的实现了扫描,并没有考虑手机内存等因素。

这里以扫描图片为例,扫描其它类型的文件,只需要换后缀名。

具体实现方法如下:

view
source

print?

01.
private
List>
l =
new
ArrayList>();


02.
private
HashMap
hm;


03.
//常见的图片格式


04.
private
String[]
img =
new
String[]
{
".jpg"
,
".png"
,
".gif"
,
".bmp"
};


05.


06.
private
void
checkFile(File
file) {
//
遍历文件,在这里是遍历sdcard


07.
if
(file.isDirectory())
{
//
判断是否是文件夹


08.
File[]
files = file.listFiles();
//
以该文件夹的子文件或文件夹生成一个数组


09.
if
(files
!=
null
)
{
//
如果文件夹不为空


10.
for
(
int
i
=
0
;
i < files.length; i++) {


11.
File
f = files[i];


12.
checkFile(f);
//
递归调用


13.
}


14.
}


15.
}
else
if
(file.isFile())
{
//
判断是否是文件


16.
int
dot
= file.getName().lastIndexOf(
"."
);


17.
if
(dot
> -
1
&&
dot < file.getName().length()) {


18.
String
extriName = file.getName().substring(dot,


19.
file.getName().length());
//
得到文件的扩展名


20.
if
(extriName.equals(img[
0
])
|| extriName.equals(img[
1
])


21.
||
extriName.equals(img[
2
])
|| extriName.equals(img[
3
]))
{
//
判断是否是图片文件 www.it165.net


22.
hm
=
new
HashMap();


23.
hm.put(
"name"
,
file.getName());


24.
hm.put(
"path"
,
file.getPath());
//
如果是图片,则得到文件名和路径,装入集合中


25.
l.add(hm);


26.
}


27.
}


28.
}


29.
}


我把路径保存起来,以后方便建立Bitmap对象(BitmapFactory.decodeFile(path)方法)。

之前在网上看到,android系统启动的时候会自动扫描手机中的媒体文件,并把扫描的信息保存在某个文件中,而我们可以读取到这个文件的信息,具体请参看MediaStore类,通过这个类可以实现,这里就不做叙述。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: