Доступ к миниатюрам изображений и видео для создания собственной галереи - PullRequest
0 голосов
/ 22 мая 2018

Я хочу создать собственную галерею, подобную той, которая используется в 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 Ответ

0 голосов
/ 22 мая 2018

Вы можете получить эскиз видео, как это

Bitmap bitmap = ThumbnailUtils.createVideoThumbnail("file_path",
                MediaStore.Video.Thumbnails.MINI_KIND);
...