You can use below code to search all image from SD Card .
private String SD_CARD_ROOT;
File mFile=Environment.getExternalStorageDirectory();
SD_CARD_ROOT=mFile.toString();
private List FindFiles() {
final List tFileList = new ArrayList();
Resources resources = getResources();
// array of valid image file extensions
String[] imageTypes = resources.getStringArray(R.array.image);
FilenameFilter[] filter = new FilenameFilter[imageTypes.length];
int i = 0;
for (final String type : imageTypes) {
filter[i] = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith("." + type);
}
};
i++;
}
FileUtils fileUtils = new FileUtils();
File[] allMatchingFiles = fileUtils.listFilesAsArray(
new File(SD_CARD_ROOT), filter, -1);
for (File f : allMatchingFiles) {
tFileList.add(f.getAbsolutePath());
}
return tFileList;
}
in Resource Array for Image types:
- bmp
- cmx
- cod
- gif
- ico
- ief
- jpe
- jpeg
- jpg
- jfif
- pbm
- pgm
- png
- pnm
- ppm
- ras
- rgb
- svg
- tif
- tiff
- xbm
- xpm
- xwd
Hope this will help you to find images.
Here is missing class
public class FileUtils {
public void saveArray(String filename, List output_field) {
try {
FileOutputStream fos = new FileOutputStream(filename);
GZIPOutputStream gzos = new GZIPOutputStream(fos);
ObjectOutputStream out = new ObjectOutputStream(gzos);
out.writeObject(output_field);
out.flush();
out.close();
}
catch (IOException e) {
e.getStackTrace();
}
}
@SuppressWarnings("unchecked")
public List loadArray(String filename) {
try {
FileInputStream fis = new FileInputStream(filename);
GZIPInputStream gzis = new GZIPInputStream(fis);
ObjectInputStream in = new ObjectInputStream(gzis);
List read_field = (List)in.readObject();
in.close();
return read_field;
}
catch (Exception e) {
e.getStackTrace();
}
return null;
}
public File[] listFilesAsArray(File directory, FilenameFilter[] filter,
int recurse) {
Collection files = listFiles(directory, filter, recurse);
File[] arr = new File[files.size()];
return files.toArray(arr);
}
public Collection listFiles(File directory,
FilenameFilter[] filter, int recurse) {
Vector files = new Vector();
File[] entries = directory.listFiles();
if (entries != null) {
for (File entry : entries) {
for (FilenameFilter filefilter : filter) {
if (filter == null
|| filefilter
.accept(directory, entry.getName())) {
files.add(entry);
Log.v("ImageViewFlipper", "Added: "
+ entry.getName());
}
}
if ((recurse <= -1) || (recurse > 0 && entry.isDirectory())) {
recurse--;
files.addAll(listFiles(entry, filter, recurse));
recurse++;
}
}
}
return files;
}
}