我正在使用此代码从sdcard读取图像。但是当我启动应用程序时,它需要5秒才能启动。你能给我一些建议吗?我怎样才能减少阅读图像的时间。这是代码 -
ArrayList<File> imageReader(File root){
ArrayList<File> a = new ArrayList<>();
b = new ArrayList<>();
File[] files = root.listFiles();
for (int i=0;i<files.length;i++){
if (files[i].isDirectory()){
a.addAll(imageReader(files[i]));
}
else{
if (files[i].getName().endsWith(".jpg")) {
a.add(files[i]);
}
}
}
return a;
}
答案 0 :(得分:0)
删除递归
public static List<File> getAllFiles(File root) {
List<File> files = new ArrayList<File>();
files.addAll(Arrays.asList(root.listFiles());
List<File> images = new ArrayList<File>();
for (int i=0; i < files.size(); i++) {
File aFile = files.get(i);
if (aFile.isDirectory()) {
files.addAll(Arrays.asList(aFile.listFiles());
continue;
}
if (aFile..getName().endsWith(".jpg")) {
images.add(aFile);
}
return images;
}
使用后台主题
new Thread() {
public void run() {
System.out.prinln(getAllFiles(File.listRoots()[0]);
}
}.start();