2010-11-28 4 views
0

Ok, donc j'ai un code, qui prennent une image de la vue actuelle, et il se transforme en un bitmap, puis je finis ici,Enregistrement d'un BitmapDrawable ou Bitmap

Bitmap bm = view.getDrawingCache(); 
BitmapDrawable bitmapDrawable = new BitmapDrawable(bm); 

maintenant, ce que je J'essaie de faire, est de prendre une photo de ce que la vue actuelle ressemble, mais d'ici, je peux facilement mettre bitmapDrawable dans un ImageView, mais ce n'est pas ce que je veux, je voudrais aller d'ici, pour l'enregistrer. Que puis-je faire? J'ai trouvé une façon, en utilisant

FileOutputStream fos; 
    try { 
    fos = super.openFileOutput("output.png",MODE_WORLD_READABLE); 
    bm.compress(CompressFormat.PNG, 75, fos); 

     fos.flush(); 
     fos.close(); 
    } catch (FileNotFoundException e) { 
    e.printStackTrace(); 
    } catch (IOException e) { 
    e.printStackTrace(); 

}
mais quand je fais cela, je me retrouve avec un NullPointerException à

bm.compress(CompressFormat.PNG, 75, fos); 

suis-je manque quelque chose?

Bon, maintenant il fait par le code ci-dessus, en fait passé fos.close(); à la fin, mais rien ne se passe, ce ne est pas sauvé, pas sur mon téléphone, rien

Répondre

0

La seule chose qui peut être nulle sur cette ligne (et provoquer une exception NullPointerException) est bm, ce qui signifie que Bitmap bm = view.getDrawingCache(); n'a pas fonctionné comme prévu. Pouvez-vous poster la trace de la pile?

+0

deux choses, oui, mais comment puis-je publier la trace de la pile? et mais quand je le mets dans une imageview cela fonctionne et montre l'image de la vue .. – Samuel

+0

Serait-ce le problème? http://stackoverflow.com/questions/2817166/android-2-1-views-getdrawingcache-method-always-returns-null –

+0

Je ne sais pas quoi faire avec onLayout (0, 0, 100, 100); .. – Samuel

Questions connexes