包含所有图像的Android文件夹的路径

时间:2015-05-24 15:14:31

标签: android path

我正在尝试构建一项功能,将最新保存的图像从设备加载到应用中。 目前我使用此路径DCIM/Camera/但它只存储相机拍摄的图像。是否有存储所有图像的文件夹? (截图,从网络或相机胶卷保存的图像)

1 个答案:

答案 0 :(得分:3)

不是在文件夹中搜索图像,而是让系统为您处理。

Android会自行索引大多数媒体数据(图片,音乐等),并提供Content Providers来查询这些数据库。

出于您的目的,您可以使用MediaStore.Images.Media-provider

public List<String> getImagePaths(Context context) {
    // The list of columns we're interested in:
    String[] columns = {MediaStore.Images.Media.DATA, MediaStore.Images.Media.DATE_ADDED};

    final Cursor cursor = context.getContentResolver().
            query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, // Specify the provider
                    columns, // The columns we're interested in
                    null, // A WHERE-filter query
                    null, // The arguments for the filter-query
                    MediaStore.Images.Media.DATE_ADDED + " DESC" // Order the results, newest first
            );

    List<String> result = new ArrayList<String>(cursor.getCount());

    if (cursor.moveToFirst()) {
        final int image_path_col = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        do {
            result.add(cursor.getString(image_path_col));
        } while (cursor.moveToNext());
    }
    cursor.close();

    return result;
}

该方法将返回当前由MediaStore索引的所有图像的图像路径列表,其中包含最新的图像路径。您需要android.permission.READ_EXTERNAL_STORAGE - 权限才能生效!