我使用下面的代码将布局的内容保存在png文件中。但是当布局的内容发生变化时,我会再次调用这个函数,并将其保存在一个新文件中。我看到它已经保存了以前的内容。
picLayout.setDrawingCacheEnabled(true);
picLayout.buildDrawingCache();
Bitmap bmCA = picLayout.getDrawingCache();
File file = new File(Environment.getExternalStorageDirectory(),folder_1_n);
if (!file.exists()){
file.mkdirs();}
if (file.exists()){
FileOutputStream uotputstreem_c;
File out_c_file= new File(file,c_filename);
try{
uotputstreem_c = new FileOutputStream(out_c_file);
bmCA.compress(Bitmap.CompressFormat.PNG,100,uotputstreem_c);
uotputstreem_c.flush();
uotputstreem_c.close();
if(!folder)Toast.makeText(this, "successful", Toast.LENGTH_SHORT).show();
}catch (Exception e){
Toast.makeText(this, "Failed", Toast.LENGTH_SHORT).show();
}}else {
Toast.makeText(this, "Failed", Toast.LENGTH_SHORT).show();
}
1条答案
按热度按时间gcmastyq1#
要确保保存的图像反映布局的更新内容,可以尝试在捕获图形缓存之前添加以下代码:
picLayout.destroyDrawingCache();
这将有助于清除以前的内容并准确地捕获新布局。