J'essaie de convertir mon LinearLayout en bitmap pour que je puisse enregistrer le contenu actuel de la mise en page en tant qu'image sur la carte SD. Tout d'abord, je crée des bitmaps et des canevas et j'attache la mise en page à la toile. Suivi des étapes de http://www.brighthub.com/mobile/google-android/articles/30676.aspx#comments.Convert View en bitmap Problème FileNotFoundException
//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);
Lorsque j'appuie sur le bouton d'enregistrement, il devrait enregistrer le modèle sous la forme d'une image sur la carte SD. Voici mes étapes:
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);
Il peut créer un dossier dans la carte SD mais aucun fichier créé dans ce dossier. Cela me donne toujours FileNotFoundException. Je ne suis pas sûr que ce soit le problème de création de fichier ou le problème screenBitmap. Quelqu'un peut-il me donner un indice? Merci!
Maintenant qu'il donne IOException, le répertoire parent du fichier n'existe pas. Mais je peux voir le répertoire parent créé dans la carte SD ah? Pourquoi? – Wen
Ok, j'ai fait une erreur très stupide. J'ai défini le nom de fichier d'une manière incorrecte. Je mets "/" dans le nom de fichier et ce n'est pas accepté. Après la suppression tout fonctionne bien maintenant. :) – Wen