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