0

我正在尝试将我的 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 问题。谁能给我一些线索?谢谢!

4

2 回答 2

1

您是否在 Android Manifest 中启用了正确的权限?即android.permission.WRITE_EXTERNAL_STORAGE。在添加权限之前尝试保存到 SD 时,我得到了相同的 FileNotFoundException。

于 2010-09-02T16:55:50.990 回答
0

File outputfile = new File(file, filename);

插入这个:

outputfile.createNewFile();
于 2010-09-02T16:51:03.463 回答