指定一个相册文件夹

6
我有一些代码,可以从应用程序中进行屏幕截图并将其保存到SD卡中,并在相册中提供查看。 问题是,当您在相册中查找时,它与相机图片一起保存。我更希望它保存在下载文件夹下,或者创建一个专门的应用程序文件夹(例如PicSay),用户可以在其中访问所有屏幕截图。目前,我正在使用以下方法保存到相机相册:
MediaStore.Images.Media.insertImage(getContentResolver(), imagePath, fileName, desc);

你怎么让它保存到除相机以外的不同位置?
2个回答

3
您可以使用普通的Java API将图片文件保存到外部存储目录中的任何位置。(提示-使用FileOutputStream)
您需要解决的唯一问题是告诉Android您已添加了新内容,因此更新内容数据库。图库可以使用它来向用户显示图像。
所以创建一个新的ContentValue并将其插入ContentResolver中。您可以使用API getContentResolver()获取ContentResolver的句柄。
ContentValue包含相关信息,如图像的名称、绝对路径、创建日期、文件大小等,不是所有这些都是必需的,请查看Android文档并选择对您无关的值。
ContentValues values = new ContentValues(7);

values.put(Images.Media.TITLE, title);
values.put(Images.Media.DISPLAY_NAME, fileName);
values.put(Images.Media.DATE_TAKEN, currTime);
values.put(Images.Media.MIME_TYPE, "image/jpeg");
values.put(Images.Media.ORIENTATION, 0);
values.put(Images.Media.DATA, filePath);
values.put(Images.Media.SIZE, jpegData.length);

contentResolver.insert(STORAGE_URI, values);

瞧,相册会在它所放置的位置展示图片 :)


1
谢谢。我不得不将您的最后一行更改为contentResolver.insert(Images.Media.EXTERNAL_CONTENT_URI, values); 但除此之外,它运行得很好。 - Woodsy
实际上我发现我的原始代码是有效的,只是 Android 花了一天左右的时间才更新了图库,以便显示存储在 SD 卡上的文件。而您的方法可以使它们立即被注册。再次感谢。 - Woodsy
我的错,我匆忙地从我的项目中复制了代码。STORAGE_URI 指向外部目录。 - bluefalcon

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接