指定Gallery文件夹

时间:2011-10-21 17:04:23

标签: android

我有一些代码可以从应用程序中截取屏幕并将其保存到SD卡并在Gallery中提供。问题是当你在画廊中寻找它时,它会用相机图片保存它。我宁愿它保存在下载文件夹下或创建一个特定于应用程序的文件夹(PicSay做这样的事情),其中所有的屏幕截图都可供用户访问。目前,我正在使用以下内容保存到相机库:

MediaStore.Images.Media.insertImage(getContentResolver(), imagePath, fileName, desc);

如何将其保存到除相机以外的其他位置?

2 个答案:

答案 0 :(得分:2)

您可以使用普通的Java API将图像文件保存到外部存储目录中所需的任何位置。(提示 - 使用FileOutputStream)

您需要解决的唯一问题是告诉Andriod您添加了新内容,因此请更新内容数据库。图库可以用来向用户显示图像。

因此,请创建一个新的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 :(得分:0)

如果您能够将图片转换为简单流,则可以使用Android预定义方法:http://developer.android.com/guide/topics/data/data-storage.html#filesExternal