将缩略图保存到 .thumbnails 文件夹

Saving thumbnails to .thumbnails folder

您好,我正在尝试将图像保存到 .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));

'id' 实际上是我要保存的特定图像的 ID,它是从游标中获取的,如图所示:

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

图像保存在“.thumbnails”中,但是,当我尝试访问我刚刚创建的图像缩略图时,它没有被读取。 我认为这是因为我给缩略图起的名字。

所以我的问题是可以保存到“.thumbnails”文件夹吗?如果可以,我们应该以什么名称保存文件?

非常感谢您的帮助,

谢谢。

我发现要生成缩略图,我们不需要显式创建缩略图图像文件并将其放在 .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 生成缩略图,首先我们必须确保缩略图不存在,只有在不存在时才创建一个新缩略图。