使用游标加载器获取目录中的特定文件夹图像

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
}