【发布时间】:2018-10-31 21:33:58
【问题描述】:
我想创建一个类似 Instagram 中使用的自定义画廊。我需要获取所有图像和视频并在 Recyclerview 中显示它们。如果用户单击图像缩略图,该图像将显示在页面顶部,如果用户单击视频缩略图,则该视频将在页面顶部播放。我在片段中使用了 LoaderManager,并使用一个光标获取所有图像和视频,如 here 所述
以下是我的一段代码
@NonNull
@Override
public Loader<Cursor> onCreateLoader(int id, @Nullable Bundle args) {
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
};
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(
getContext(),
queryUri,
projection,
selection,
null, // Selection args (none).
MediaStore.Files.FileColumns.DATE_ADDED + " DESC" // Sort order.
);
return cursorLoader;
}
@Override
public void onLoadFinished(@NonNull Loader<Cursor> loader, Cursor data) {
recyclerView.setAdapter(new GalleryAdapter(getContext(), data, this));
}
我的问题是我需要图像和视频的缩略图而不是原始缩略图,我该怎么做?
【问题讨论】:
标签: android android-cursorloader android-loadermanager video-thumbnails