2011-06-24 27 views
4

私はアンドロイドで画面に描画されたwebviewの画像をキャプチャしようとしていますが、私はいつも黒い画像で終わります。それは正しいサイズとすべてのものであるだけではない。ここオフスクリーンWebViewをビットマップに描画

は、私が使用していますコードです:

String theURL = "file:///android_asset/www/pages/page2.html"; 
     WebView webview = new WebView(ctx); 
     webview.loadUrl(theURL); 
     Bitmap bm = Bitmap.createBitmap(1000, 1000, Bitmap.Config.ARGB_8888); 
     Canvas c = new Canvas(bm); 
     webview.draw(c); 
     OutputStream stream = null; 
     try { 
      stream = new FileOutputStream(Environment.getExternalStorageDirectory() +"/page.jpg"); 
      bm.compress(CompressFormat.JPEG, 80, stream); 
      if (stream != null) stream.close();    
      return new PluginResult(PluginResult.Status.OK); 
     } catch (IOException e) { 
      return new PluginResult(PluginResult.Status.ERROR, e.toString()); 
     } finally { 
      bm.recycle(); 
     }  

感謝を誰が助けることができるかどうか。

答えて

0

webview.loadUrl(theURL);はページの読み込みを開始しますが、それには時間がかかることがあります。ページが読み込まれるまであなたのwebviewを描画する前に待ってください。 setWebViewClient(WebViewClient client)を使用して、ページの読み込みが完了したときに通知を受け取るオブジェクトを設定できます。

関連する問題