我正在尝试创建一个画廊应用程序,该应用程序仅显示我内部存储中的屏幕快照文件夹中的图像。
我从here找到了解决方案,但是在如何指定所需文件夹的路径上遇到了困难。
这是代码段:
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);
任何更正将不胜感激。干杯!
答案 0 :(得分:0)
尝试
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();
}
}
}