我有一些代码可以从应用程序中截取屏幕并将其保存到SD卡并在Gallery中提供。问题是当你在画廊中寻找它时,它会用相机图片保存它。我宁愿它保存在下载文件夹下或创建一个特定于应用程序的文件夹(PicSay做这样的事情),其中所有的屏幕截图都可供用户访问。目前,我正在使用以下内容保存到相机库:
MediaStore.Images.Media.insertImage(getContentResolver(), imagePath, fileName, desc);
如何将其保存到除相机以外的其他位置?
答案 0 :(得分:2)
您可以使用普通的Java API将图像文件保存到外部存储目录中所需的任何位置。(提示 - 使用FileOutputStream)
您需要解决的唯一问题是告诉Andriod您添加了新内容,因此请更新内容数据库。图库可以用来向用户显示图像。
因此,请创建一个新的ContentValue
,然后将其插入ContentResolver
。您可以使用API getContentResolver()
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