我正在尝试将LinearLayout转换为位图,以便将当前布局内容保存为SD卡中的图像。首先,我创建位图和画布并将布局附加到画布。从http://www.brighthub.com/mobile/google-android/articles/30676.aspx#comments开始执行以下步骤。
//code to add child view into layout before creating bitmap
screenBitmap = Bitmap.createBitmap(200,200,Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(screenBitmap);
layout.draw(canvas);
当我按下保存按钮时,它应将当前布局作为图像保存到SD卡。以下是我的步骤:
FileOutputStream outStream = null;
File file = new File("/sdcard/Health Management System/");
file.mkdirs();
File outputFile = new File(file, fileName);
outStream = new FileOutputStream(outputFile);
BufferedOutputStream bos = new BufferedOutputStream(outStream);
bos.flush();
bos.close();
screenBitmap.compress(Bitmap.CompressFormat.PNG, 100,bos);
它可以在SD卡中创建文件夹但在此文件夹下没有创建文件。它总是给我FileNotFoundException。我不确定是文件创建问题还是screenBitmap问题。谁能给我一些线索?谢谢!
答案 0 :(得分:1)
您是否在Android Manifest中启用了正确的权限?即android.permission.WRITE_EXTERNAL_STORAGE
。
在添加权限之前尝试保存到SD时,我得到了相同的FileNotFoundException。
答案 1 :(得分:0)
在
File outputfile = new File(file, filename);
插入此内容:
outputfile.createNewFile();