gpt4 book ai didi

android - 在Android中将 Canvas 保存为图像

转载 作者:太空宇宙 更新时间:2023-11-03 13:44:51 26 4
gpt4 key购买 nike

我将类从DrawingView扩展到View并在其上绘制路径一切正常
但当我试图将画布保存为图像时,它不起作用。
这是我正在尝试的代码。

// drawView is an object of DrawingView class
drawView.setDrawingCacheEnabled(true);
String imgSaved = MediaStore.Images.Media.insertImage(
getContentResolver(), drawView.getDrawingCache(),
UUID.randomUUID().toString()+".png", "drawing");
if(imgSaved!=null){
Toast savedToast = Toast.makeText(getApplicationContext(),
"Drawing saved to Gallery!", Toast.LENGTH_SHORT);
savedToast.show();
}
else{
Toast unsavedToast = Toast.makeText(getApplicationContext(),
"Oops! Image could not be saved.", Toast.LENGTH_SHORT);
unsavedToast.show();
}
drawView.destroyDrawingCache();

我总是收到消息 Oops! Image could not be saved.这段代码有什么问题为什么不保存它?

最佳答案

答案取自Stackoverflow Answer
但是需要一些小的改变,比如有拼写错误file.seperatorile.separator一起改变,并且没有try块。
只需将content更改为drawView
最终代码:

try {
drawView.setDrawingCacheEnabled(true);
Bitmap bitmap = drawView.getDrawingCache();
File f = null;
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File file = new File(Environment.getExternalStorageDirectory(),"TTImages_cache");
if(!file.exists()){
file.mkdirs();
}
f = new File(file.getAbsolutePath()+file.separator+ "filename"+".png");
}
FileOutputStream ostream = new FileOutputStream(f);
bitmap.compress(Bitmap.CompressFormat.PNG, 10, ostream);
ostream.close();
} catch(Exception e){
e.printStackTrace();
}

关于android - 在Android中将 Canvas 保存为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44470783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com