2013-10-29 94 views
1

我試圖從Web視圖中獲取圖像,但是當我調用「webView.capturePicture()」時,它爲我帶來了一個圖片對象。在大多數情況下,這對我來說夠使用的後續代碼將其轉換爲位圖對象將BIG圖片對象轉換爲位圖對象Android。

Bitmap b = Bitmap.createBitmap(picture.getWidth(), picture.getHeight(), Bitmap.Config.ARGB_8888); 
Canvas c = new Canvas(b); 
picture.draw(c); 

但在相同的情況下,將創建位圖比對內存的Android支持最大。

所以,我需要知道如何將文件中的Picture對象直接轉換爲位圖對象(我想這將是一個解決方案),而不需要任何內存中的位圖實例。或者像那樣。 重點是從圖片對象創建一個位圖,但我不能,因爲它太大了

PS:我不想使用'android:largeHeap =「true」'。

所以,如果有人有同樣的想法讓我知道。

感謝

回答

0

試試這個:

Picture p = webView.capturePicture(); 
FileOutputStream fos; 

try { 
    fos = new FileOutputStream("/sdcard/picture"); 
    p.writeToStream(fos); 
    fos.flush(); 
    fos.close(); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

警告:Picture.writeToStream()從API級別18中已過時和建議的替代方法是創建位圖。更多信息here

+0

這是不夠的,因爲即使我保存在像這樣的文件,這仍然是一個圖片對象。 PS:我已經嘗試過。 –