我的模拟器的sdcard中有一个名为images的文件夹。此文件夹包含从我的应用程序中单击的图片。我想将该文件夹中的所有图片显示到列表视图中。我怎样才能做到这一点?提前谢谢。
答案 0 :(得分:10)
这应该让你开始使用它。
http://android-er.blogspot.com/2010/01/android-file-explorer-with-jpgs-exif_08.html
计算要求的简单逻辑,
private void getDir(String dirPath)
{
myPath.setText("Location: " + dirPath);
item = new ArrayList<String>();
path = new ArrayList<String>();
File f = new File(dirPath);
File[] files = f.listFiles();
if(!dirPath.equals(root))
{
item.add(root);
path.add(root);
item.add("../");
path.add(f.getParent());
}
for(int i=0; i < files.length; i++)
{
File file = files[i];
path.add(file.getPath());
if(file.isDirectory())
item.add(file.getName() + "/");
else
item.add(file.getName());
}
ArrayAdapter<String> fileList =
new ArrayAdapter<String>(this, R.layout.row, item);
setListAdapter(fileList);
}
答案 1 :(得分:3)
我还没试过,但我想如果你能够通过放置SD卡中的图像来创建IMageView,你就可以做到这一点。您可以通过传递 MediaStore.Images.Media.EXTERNAL_CONTENT_URI 创建ContentResolver游标来获取SD卡中的图像,然后通过将URI和id(从游标)传递给它来创建imageview。创建ImageView后,您可以创建它的数组并将其传递给ArrayAdapter,然后将其用于将数据设置为ListView。我希望这能帮助你解决问题。
答案 2 :(得分:0)
ArrayList<File> imageReader(File root) {
ArrayList<File> a = 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;
}
将您的根目录作为参数,添加您要检索的所有扩展名。