使用游标加载器获取目录中的特定文件夹图像
Getting a particular folders images in a directory using cursor loader
我正在尝试从 SD 卡的特定文件夹中检索图像。我能做的是从 sdcard
获取所有图像
代码:
onCreateLoader
方法:
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
String[] projection = {MediaStore.Files.FileColumns._ID,
MediaStore.Files.FileColumns.DATE_ADDED,
MediaStore.Files.FileColumns.MEDIA_TYPE
};
String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "="
+ MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE;
return new CursorLoader(getContext(), MediaStore.Files.getContentUri("external"), projection, selection, null,
MediaStore.Files.FileColumns.DATE_ADDED + " ASC");
}
I m trying to retrieve images from a particular folder from sd card
将目录名称传递为 selectionArgs
并将选择字符串更改为:
String selection = MediaStore.Images.Media.DATA + " like ? ";
String selectionArgs =new String[] {"%PASS_DIR_NAME_HERE%"};
new CursorLoader(getContext(),MediaStore.Files.getContentUri("external"),
projection,
selection,
selectionArgs,
MediaStore.Files.FileColumns.DATE_ADDED + " ASC");
您可以直接从 decodeFile (String pathName) 创建位图,这将为您提供可在 ImageView 上设置的位图对象。
File path = new File(Environment.getExternalStorageDirectory(),"iWallet/Images");
if(path.exists())
{
String[] fileNames = path.list();
}
for(int i = 0; i < filename.length; i++)
{
Bitmap mBitmap = Bitmap.decodeFile(path.getPath()+"/"+ fileNames[i]);
///Now set this bitmap on imageview
}
我正在尝试从 SD 卡的特定文件夹中检索图像。我能做的是从 sdcard
获取所有图像代码:
onCreateLoader
方法:
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
String[] projection = {MediaStore.Files.FileColumns._ID,
MediaStore.Files.FileColumns.DATE_ADDED,
MediaStore.Files.FileColumns.MEDIA_TYPE
};
String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "="
+ MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE;
return new CursorLoader(getContext(), MediaStore.Files.getContentUri("external"), projection, selection, null,
MediaStore.Files.FileColumns.DATE_ADDED + " ASC");
}
I m trying to retrieve images from a particular folder from sd card
将目录名称传递为 selectionArgs
并将选择字符串更改为:
String selection = MediaStore.Images.Media.DATA + " like ? ";
String selectionArgs =new String[] {"%PASS_DIR_NAME_HERE%"};
new CursorLoader(getContext(),MediaStore.Files.getContentUri("external"),
projection,
selection,
selectionArgs,
MediaStore.Files.FileColumns.DATE_ADDED + " ASC");
您可以直接从 decodeFile (String pathName) 创建位图,这将为您提供可在 ImageView 上设置的位图对象。
File path = new File(Environment.getExternalStorageDirectory(),"iWallet/Images");
if(path.exists())
{
String[] fileNames = path.list();
}
for(int i = 0; i < filename.length; i++)
{
Bitmap mBitmap = Bitmap.decodeFile(path.getPath()+"/"+ fileNames[i]);
///Now set this bitmap on imageview
}