【问题标题】:Load image files from internal storage into arrayList将图像文件从内部存储加载到 arrayList
【发布时间】:2018-10-17 15:11:21
【问题描述】:

我正忙着为大学开发一个 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]);

任何帮助将不胜感激。

【问题讨论】:

  • 所以您想从getExternalStorageDirectory 获取正确的所有图像而不是应用程序内部的?
  • 我想从我在代码部分 1 中创建的目录“InkousticImages”中获取所有图像:)

标签: java android arrays


【解决方案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);
    }
}

【讨论】:

    猜你喜欢
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 2017-05-21
    相关资源
    最近更新 更多