gpt4 book ai didi

android - 在同一光标中访问有序的图像和视频

转载 作者:IT老高 更新时间:2023-10-28 21:54:17 26 4
gpt4 key购买 nike

我正在使用 android.content.CursorLoader 类创建两个 Cursor 对象来访问存储在我的应用设备用户上的媒体。我想为用户提供他们存储的图像和视频的 GridView ,以保留 Android Gallery 应用程序的顺序。

目前我使用一个 Cursor 访问图像和一个访问视频。使用这种方法,所有图像都位于所有视频之前(即它们位于两个不同的组中)。有没有办法从同一个 Cursor 访问图像和视频?如果没有,有没有更好的方法在设备上访问这些媒体?

供引用,这是我正在使用的代码:

图片:

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

还有视频:

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

最佳答案

经过大量研究和使用源代码后,我终于对 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();

关于android - 在同一光标中访问有序的图像和视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17664826/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com