2016-12-12 11 views
1

WebViewコンテンツをキャプチャするためのビットマップを作成しました。 コンテンツのサイズが小さい場合は問題ありません。 ただし、コンテンツのサイズが大きい場合は、ビットマップの作成時にメモリ不足エラーが発生します。Androidスクリーンショットのビットマップを作成中にメモリ不足エラーが発生しました

ここに私のコードです。

float scale = webView.getScale(); 
    int webViewHeight = (int)(webView.getContentHeight() * scale); 

    //************************************************************ 
    // An error occurs here. 
    Bitmap image = Bitmap.createBitmap(webView.getWidth(), webViewHeight, Bitmap.Config.ARGB_8888); 

    Canvas canvas = new Canvas(image); 
    webView.draw(canvas); 


    try { 
     FileOutputStream out = new FileOutputStream(filePath); 
     image.compress(Bitmap.CompressFormat.JPEG, 100, out); 
     out.close(); 

    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

大きなコンテンツのWebviewをキャプチャするにはどのような方法を使用しますか?

ありがとうございました。

答えて

0

他の設定で試してください。 Bitmap.Config.RGB_565。作成されたビットマップのサイズが小さくなります

+0

ありがとうございます。 コンテンツサイズが非常に大きい場合があります。 その方法を使用しても、メモリが不足しています。 ビットマップをメモリに割り当てずにディスクに割り当てることはできますか? – LuckyLeeis

関連する問題