我在清单文件中设置了必要的权限,而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) {
}
}
}
我的图像是从绘制的文件创建的。我会错过什么?
1条答案
按热度按时间vfhzx4xs1#
我想你的
mBitmap
变量中没有任何内容,或者您添加了一个额外的/
在创建图像的行中File
. 试着这样做:不管怎样,如果这不起作用,你将不得不调试它。我将删除try->catch语句并查看是否出现错误,直到您知道它工作正常为止,然后只添加try->catch。