如何获取Android画廊的所有图像路径,无论是内部还是外部?

时间:2013-10-15 05:34:57

标签: android

据我所知

File directory = new File(
            android.os.Environment.getExternalStorageDirectory()
                    + File.separator + "100ANDRO");

将获取图像目录,但我担心如果某些手机有不同的目录然后它不会工作,有没有直接的方式,android api为我们提供了获取所有图像路径而无需硬编码目录名称 100ANDRO

提前致谢。

2 个答案:

答案 0 :(得分:1)

您可以使用MediaStore.Images.Media.EXTERNAL_CONTENT_URI,它只是外部存储。对于内部存在MediaStore.Images.Media.INTERNAL_CONTENT_URI。您可以使用MergeCursor来合并查询结果。

主要是使用MediaStore类,Media provider类包含内部和外部存储设备(例如SD卡)上所有可用媒体的数据。适配器用作数据和视图之间的桥梁。

有关实施,请查看演示Fetch Images from SDcard and display in GridView

答案 1 :(得分:0)

    ArrayList fileList = new ArrayList();

// Pass directory path to this function and it will return the files 

        public ArrayList<File> getfile(File dir) {
            File listFile[] = dir.listFiles();
            if (listFile != null && listFile.length > 0) {
                for (int i = 0; i < listFile.length; i++) {
                    if (listFile[i].isDirectory()) {
    //                    fileList.add(listFile[i]);
                        getfile(listFile[i]);
                    } else {
                        if(listFile[i].getName().endsWith(".jpg")
                              || listFile[i].getName().endsWith(".png")   
                              || listFile[i].getName().endsWith(".jpeg")
                              || listFile[i].getName().endsWith(".gif")
     )
                        {
                            fileList.add(listFile[i]);
                        }
                    }
                }
            }
            return fileList;
        }