如何从模拟器的SD卡中获取所有图片并将其显示在listView中?

时间:2011-09-05 04:38:17

标签: android

我的模拟器的sdcard中有一个名为images的文件夹。此文件夹包含从我的应用程序中单击的图片。我想将该文件夹中的所有图片显示到列表视图中。我怎样才能做到这一点?提前谢谢。

3 个答案:

答案 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;
    }

将您的根目录作为参数,添加您要检索的所有扩展名。