在相同的光标访问有序的图像和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(); 

  • 从iOS到Android的点对点video?
  • 如何在Android中以编程方式停止VideoView中的video播放?
  • Android - 录制video时将麦克风静音
  • Android - 本地HTTPS服务器上的videostream:SSL证书被拒绝
  • 使用FFMPEG转换Androidvideo
  • 在Android WebView中播放Youtube HTML5embedded式video
  • 使用FFMpeg为Android解码video
  • 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();