在相同的光标访问有序的图像和video

我正在使用android.content.CursorLoader类创build两个Cursor对象来访问存储在我的应用程序设备的用户上的媒体。 我想给用户的存储图像和video的网格视图,从Android画廊应用程序保留顺序。

目前我使用一个Cursor访问图像,一个访问video。 采用这种方法,所有图像都在所有video之前(即它们分成两个组)。 有没有办法从同一Cursor访问图像和video? 如果没有,是否有更好的方法来访问设备上的这些媒体?

作为参考,这里是我使用的代码:

对于图像:

 CursorLoader cursorLoader = new CursorLoader( mContext, MediaStore.Images.Media.EXTERNAL_CONTENT_URI, IMAGE_PROJECTION, null, null, MediaStore.Images.Media._ID + " desc" ); mImageCursor = cursorLoader.loadInBackground(); 

和video:

 CursorLoader cursorLoader = new CursorLoader( mContext, MediaStore.Video.Media.EXTERNAL_CONTENT_URI, VIDEO_PROJECTION, null, null, MediaStore.Video.Media._ID + " desc" ); mVideoCursor = cursorLoader.loadInBackground(); 

Solutions Collecting From Web of "在相同的光标访问有序的图像和video"

经过大量的研究和玩弄源代码,我终于对Android文件系统更加熟悉了。 为了获得一个可以访问ImagesVideo信息的Cursor ,我使用了以下命令:

 // Get relevant columns for use later. String[] projection = { MediaStore.Files.FileColumns._ID, MediaStore.Files.FileColumns.DATA, MediaStore.Files.FileColumns.DATE_ADDED, MediaStore.Files.FileColumns.MEDIA_TYPE, MediaStore.Files.FileColumns.MIME_TYPE, MediaStore.Files.FileColumns.TITLE }; // Return only video and image metadata. String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "=" + MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE + " OR " + MediaStore.Files.FileColumns.MEDIA_TYPE + "=" + MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO; Uri queryUri = MediaStore.Files.getContentUri("external"); CursorLoader cursorLoader = new CursorLoader( this, queryUri, projection, selection, null, // Selection args (none). MediaStore.Files.FileColumns.DATE_ADDED + " DESC" // Sort order. ); Cursor cursor = cursorLoader.loadInBackground();