Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Сохранение миниатюр в папку .thumbnails

Автор вопроса: codename_47Ответов: 1

Привет, я пытаюсь сохранить изображение в папку .thumbnails, как показано ниже:

bitmap = ThumbnailUtils.extractThumbnail
                                (BitmapFactory.decodeFile(actualImagePath,options), 120, 120);
                                bitmapGenerated = true;
                        File file = new File(Environment.getExternalStorageDirectory()
                                .toString()+"/"+"DCIM/.thumbnails/"+id+".jpg");
                        boolean bcc =file.createNewFile();
                        boolean success = bitmap.compress(Bitmap.CompressFormat.PNG,60,new
                                FileOutputStream
                                (file));

"Идентификатор" на самом деле является идентификатором конкретного изображения, которое я пытаюсь сохранить, и получается из курсора, как показано ниже:

image_column_index = mCursor.getColumnIndex(MediaStore.Images.Media._ID);
id = mCursor.getLong(image_column_index);

Изображение сохраняется в '.thumbnails' , однако, когда я пытаюсь получить доступ к только что созданному эскизу изображения, оно не читается. Я думаю, это из-за имени, которое я дал миниатюре.

Итак, мой вопрос: можно ли сохранить в папку ".thumbnails", и если да, то под каким именем мы должны сохранить файл?

Помощь очень ценится,

Благодарю вас.

androidfileimagethumbnails

Ответы

Ответ 1 · рейтинг 1 · codename_47

Я обнаружил, что для создания эскиза нам не нужно явно создавать файл изображения эскиза и помещать его в папку .thumbnials.

В MediaStore.Images.Media есть метод getThumbnail, который мы можем использовать для наших целей. Код показан:

    Cursor mCursor;
mCursor = mContext.getContentResolver().query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null,
                null, null, null);
int image_column_index = mCursor.getColumnIndex(MediaStore.Images.Media._ID);
long id = mCursor.getLong(image_column_index);
MediaStore.Images.Thumbnails.getThumbnail(mContext
                    .getContentResolver(), id, MediaStore.Images.Thumbnails.MINI_KIND, null);

Приведенный выше код сгенерирует миниатюру для связанного imageid. Сначала мы должны убедиться, что миниатюра не существует, и создать новую, только если она не существует.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы