Доступ к миниатюрам изображений и видео для создания собственной галереи
Я хочу создать собственную галерею, которая используется в Instagram. Мне нужно получить все изображения и видео и показать их в Recyclerview. Если пользователь нажимает на миниатюру изображения, это изображение будет отображаться в верхней части страницы, а если пользователь нажимает на миниатюру видео, это видео будет воспроизводиться в верхней части страницы. Я использовал LoaderManager в своем фрагменте и получаю все изображения и видео одним курсором, как описано здесь
следующий фрагмент моего фрагмента кода
@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));
}
Моя проблема в том, что мне нужны миниатюры изображений и видео, а не оригинала, как я могу это сделать?
1 ответ
Вы можете получить эскиз видео, как это
Bitmap bitmap = ThumbnailUtils.createVideoThumbnail("file_path",
MediaStore.Video.Thumbnails.MINI_KIND);