Я пытаюсь преобразовать свой 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.Кто-нибудь может дать мне некоторую подсказку?Спасибо!