2010-11-28 60 views
0

好了,所以我有一個代碼,即把當前視圖的圖像,並把它變成一個位圖,然後我會在這裏結束,保存BitmapDrawable或位圖

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

現在,我」我試圖做的是拍攝當前視圖的圖像,但是從這裏我可以很容易地將bitmapDrawable放入ImageView中,但這不是我想要的,我想從這裏開始並保存它。我能做什麼?我發現了一個辦法,用

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(); 

}
但我這樣做的時候,我在

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

結束了一個NullPointerException我這麼想嗎?

好了,現在看來,它通過上面的代碼,然後使得過去fos.close();結束,但後來什麼也沒有發生,它不保存,而不是我的手機,沒有什麼

回答

0

唯一可以爲空的該行(並導致NullPointerException)爲bm,這意味着Bitmap bm = view.getDrawingCache();未按預期工作。你可以發佈堆棧跟蹤嗎?

+0

兩件事,是的,但我如何發佈堆棧跟蹤?但是當我把它放入一個imageview中,它的工作原理和顯示視圖圖片。 – Samuel 2010-11-28 08:19:36