gpt4 book ai didi

android - SD 卡上文件夹中的图像

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:33:22 24 4
gpt4 key购买 nike

我有一个应用程序需要从应用程序在 sdcard 上创建的文件夹中读取图像 (sdcard/"foldername"/"filename.jpg"。我不知道文件的名称是什么,因为用户指定文件的名称。我需要从文件夹中读取图像并制作类似默认图像查看器的东西。我想先将它们读入 GridView ,但 1) 无法弄清楚如何从文件夹中动态读取它们 2) 如何我会像默认查看器一样实现图像选项吗?如果有一种方法可以在某个文件夹上打开默认查看器,那将会有所帮助。任何输入都会很棒,因为它已经工作了一段时间。谢谢

最佳答案

以下是从存储卡中获取文件夹列表的方法:

String state = Environment.getExternalStorageState();
if(state.contentEquals(Environment.MEDIA_MOUNTED) || state.contentEquals(Environment.MEDIA_MOUNTED_READ_ONLY))
{
String homeDir = Environment.getExternalStorageDirectory();
File file = new File(homeDir);
File[] directories = file.listFiles();
}
else
{
Log.v("Error", "External Storage Unaccessible: " + state);
}

这段代码来 self 的脑海,所以一些语法可能有点偏离,但总体思路应该是可行的。您可以使用类似这样的方法将文件夹过滤为仅包含图像的文件夹:

FileFilter filterForImageFolders = new FileFilter() 
{
public boolean accept(File folder)
{
try
{
//Checking only directories, since we are checking for files within
//a directory
if(folder.isDirectory())
{
File[] listOfFiles = folder.listFiles();

if (listOfFiles == null) return false;

//For each file in the directory...
for (File file : listOfFiles)
{
//Check if the extension is one of the supported filetypes
//imageExtensions is a String[] containing image filetypes (e.g. "png")
for (String ext : imageExtensions)
{
if (file.getName().endsWith("." + ext)) return true;
}
}
}
return false;
}
catch (SecurityException e)
{
Log.v("debug", "Access Denied");
return false;
}
}
};

然后,将第一个示例更改为:

File[] directories = file.listFiles(filterForImageFolders);

那应该只返回包含图像的目录。希望这对一些人有所帮助!

关于android - SD 卡上文件夹中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3947082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com