问题描述
我正在尝试创建一个画廊应用程序,该应用程序仅显示来自内部存储中的屏幕快照文件夹中的图像。
我从找到了解决方案,但在如何指定所需文件夹的路径上遇到困难。
这是代码段:
cursor imagecursor = getContentResolver().query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
columns,
MediaStore.Images.Media.DATA + " like ? ",
new String[] {"%/yourfoldername/%"},
null);
有人可以解释一下我应该在" like ? "
中输入" like ? "
以及如何在new String[] {"%/yourfoldername/%"},
指定文件夹名称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);
任何更正将不胜感激。 干杯!
1楼
试试这个
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();
}
}
}