将View转换为位图FileNotFoundException问题

时间:2010-09-02 16:37:17

标签: android bitmap sd-card

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

File outputfile = new File(file, filename);

插入此内容:

outputfile.createNewFile();