java - 绘制的图像没有保存在我的 SD 卡中,我做错了什么?
问题描述
我在清单文件中设置了必要的权限,并且 Toast 通知实际上显示图像已保存。这是进行保存工作的方法。
public void saveImage () {
int count = 0;
File sdDirectory = Environment.getExternalStorageDirectory();
File subDirectory = new File(sdDirectory.toString() + "/Pictures/Paint");
if (subDirectory.exists()) {
File[] existing = subDirectory.listFiles();
for (File file : existing) {
if (file.getName().endsWith(".jpg") || file.getName().endsWith(".png")) {
count++;
}
}
} else {
subDirectory.mkdir();
}
if (subDirectory.exists()) {
File image = new File(subDirectory, "/drawing_" + (count + 1) + ".png");
FileOutputStream fileOutputStream;
try {
fileOutputStream = new FileOutputStream(image);
mBitmap.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
Toast.makeText(getContext(), "saved", Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
}
}
我的图像是从绘制的文件中创建的。我会错过什么?
解决方案
我认为您的变量内部没有任何内容,或者您在创建图像的行中mBitmap
添加了一个额外的内容。试试这样:/
File
File image = new File(subDirectory, "drawing_" + (count + 1) + ".png");
无论哪种方式,如果这不起作用,您将不得不对其进行调试。我会删除 try -> catch 语句并查看是否出现错误,直到您知道它可以正常工作,然后才重新添加 try -> catch 。
推荐阅读
- ruby-on-rails - 导入数据时出现postgresql错误
- jestjs - Jest 有没有办法根据输入有条件地返回一个值?
- c - 简化 C 中的多重相等检查
- python - 如何从 pandas Dataframe 创建单个字典?
- python - discord.py 检查用户是否具有特定角色
- javafx - derby 数据库打开和关闭连接
- javascript - 重定向到 Nodejs 中的默认语言?
- python - Python中的'while'循环
- html - 用node js连接mysql数据库时出错
- javascript - 为什么 render() 中的这个函数调用会创建一个无限循环?