2010-09-02 6 views
0

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!

Répondre

0

Après

File outputfile = new File(file, filename); 

Insérer ceci:

outputfile.createNewFile(); 
+0

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

+0

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

1

Avez-vous activé les permissions dans le Manifest Android? c'est-à-dire android.permission.WRITE_EXTERNAL_STORAGE. Je recevais la même FileNotFoundException en essayant d'enregistrer en SD avant d'ajouter l'autorisation.

+0

Ya, j'ai ajouté cela. – Wen

+0

C'est le problème du nom de fichier. – Wen