首页 > 解决方案 > 如何在图库应用程序中显示特定文件夹中的图像?

问题描述

我正在尝试制作一个画廊应用程序,它只显示我内部存储中屏幕截图文件夹中的图像。

我从这里找到了一个解决方案, 但我在如何指定所需文件夹的路径时遇到了困难。

这是片段:

cursor imagecursor = getContentResolver().query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                        columns, 
                        MediaStore.Images.Media.DATA + " like ? ",
                        new String[] {"%/yourfoldername/%"},  
                        null);

有人能解释一下我应该在这个里面放什么吗?" like ? "如何在这个里面指定我的文件夹名称new String[] {"%/yourfoldername/%"},

这是我的代码。

String[] projection = { MediaStore.MediaColumns.DATA,
                    MediaStore.Images.Media.BUCKET_DISPLAY_NAME, MediaStore.MediaColumns.DATE_MODIFIED };

Cursor cursor = getContentResolver().query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                    projection,
                    MediaStore.Images.Media.DATA + " like ? ",
                    new String[] {"%/sdcard/DCIM/Screenshots"},
                    null);

任何更正将不胜感激。干杯!

标签: javaandroidpathgalleryandroid-internal-storage

解决方案


试试这个

public static String getRealPathFromUri(Context context, Uri contentUri) {
    Cursor cursor = null;
    try {
        String[] proj = { MediaStore.Images.Media.DATA };
        cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
        assert cursor != null;
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    } finally {
        if (cursor != null) {
            cursor.close();
        }
    }
}

推荐阅读