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

Привет, я пытаюсь сохранить изображение в папку .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», и если да, то под каким именем мы должны сохранить файл?

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

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


person codename_47    schedule 29.05.2015    source источник


Ответы (1)


Я обнаружил, что для создания эскиза нам не нужно явно создавать файл изображения эскиза и помещать его в папку .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. Сначала мы должны убедиться, что миниатюра не существует, и создать новую, только если она не существует.

person codename_47    schedule 08.06.2015