使用MediaStore.Images.Media在特定文件夹中保存位图

5

我需要将在画布上绘制的位图保存到自己的文件夹中。

String imgSaved = MediaStore.Images.Media.insertImage(
                    getContentResolver(), drawView.getDrawingCache(),
                    UUID.randomUUID().toString() + ".png", "drawing"); 

我该如何给目录提供路径?例如:"/sdcard/MyPictures/"。
2个回答

3
使用Bitmap.compress方法将图片以JPG或PNG格式保存在指定位置。
File file = new File(yourpath, "yourfile.jpg");
FileOutputStream out = new FileOutputStream(filename);
yourbitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);

注意:在此处,90代表压缩程度,100表示无压缩。此项适用于 JPG 格式,不适用于 PNG 格式。请务必处理异常情况。

你认为在代码后面需要加上 out.flush();out.close(); 吗? - YoussefDir

2
尝试为您所需的路径创建File对象。
File mFile = new File("/sdcard/tmp");

String imgSaved=MediaStore.Images.Media.insertImage(getContentResolver(),mFile.getAbsolutePath(),UUID.randomUUID().toString()+".png", "drawing"); 

请参考此链接了解相关信息。


5
这并没有展示如何将drawView.getCache图片插入到特定的目录(mFile)中。你能演示一下如何做吗?Android文档不够清晰,insertImage方法有两种重载方式,但都不清楚如何实现这一点。谢谢。 - Ben Akin

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