2012-08-09 152 views
1

這是圍繞在一個嘗試,抓住寫作部分,但如果它不是在一個try catch方法,應用程序似乎在模擬器中崩潰。 我想在畫布保存爲位圖,然後保存位圖來存儲...保存一個畫布到位圖,然後保存位圖

screenshot = Bitmap.createBitmap(screenshot, 0, 0, 0, 0); 
Canvas can = new Canvas(screenshot); 
int i = 0; 
String filename = "EnderShot"; 
while (new File(filename + i + ".png") != null){ 
    FileOutputStream fos = null; 
    fos = openFileOutput(filename + i + ".png", Context.MODE_PRIVATE); 
    fos.write(screenshot.getByteCount()); 
    fos.close(); 
} 

這也節省了它......所以,如果任何人都可以做得出來?

回答

1

您在畫布上繪製的任何內容都將實際繪製在底層位圖上。

在這種情況下

screenshot

所以,你已經有了畫布的位圖,並且不需要到畫布轉換爲位圖。

保存位圖到文件做

try { 
    FileOutputStream out = new FileOutputStream(filename + i + ".png"); 
    screenshot.compress(Bitmap.CompressFormat.PNG, 90, out); 
    out.flush(); 
    out.close(); 
} catch (Exception e) { 
    e.printStackTrace(); 
}