将图像文件从内部存储加载到arrayList

时间:2018-10-17 15:11:21

标签: java android arrays

我正忙于为大学开发Android应用程序,并希望将保存在内部存储文件夹中的所有图像加载到阵列列表中。我已经设法使用资产来做到这一点,但我需要能够使用我创建的内部存储文件夹中的图像文件来做到这一点

用于创建文件夹的代码

File root_text = Environment.getExternalStorageDirectory();
try {
    File folder = new File(Environment.getExternalStorageDirectory() + "/InkousticImages");
    boolean success = true;
    if (!folder.exists()) {
        success = folder.mkdir();
    }
}

用于将资产文件加载到数组列表中并将其打开到inputStream中的当前代码(这是我想要做的,但要使用内部存储器中的文件)

String[] imageList = getAssets().list("images");
List <String> myList = new ArrayList<>();
for (String filename: imageList) {
    if (filename.toLowerCase().endsWith(".jpg") || filename.toLowerCase().endsWith("jpeg")) {
        myList.add(filename);
    }
}
AssetManager assetManager = getAssets()
InputStream istr = assetManager.open("images/" + myList.toArray()[index]);

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

在这里,我为您编写了代码,这会遍历目录中的所有文件,并检查扩展名是否为有效映像,并将名称添加到列表中

List<String> fileNames = new ArrayList<>();
File folder = new File(Environment.getExternalStorageDirectory(), "InkousticImages");
if (!folder.exists()) folder.mkdir();
for (File file : folder.listFiles()) {
    String filename = file.getName().toLowerCase();
    if (filename.endsWith(".jpg") || filename.endsWith("jpeg")) {
        fileNames.add(filename);
    }
}
相关问题