2017-06-15 12 views
2

Androidでwebviewのスクリーンショットを撮ろうとしています。しかし、スクリーンショットが速すぎると、結果として空白のスクリーンショットが表示されます。私はwebviewclientとonPageFinishedを実装しようとしましたが、ショットを取る前にロードするwebviewを聞いていましたが、うまくいきませんでした。スクリーンショットを撮る前にビューが読み込まれるようにするにはどうすればよいですか?スクリーンショットを撮る前にwebviewがHTMLを読み込むのを待ちます。

public void onSaveClicked(View reLayout){ 

    final WebView webview; 
    setContentView(R.layout.webview); 
    webview = (WebView) findViewById(R.id.webview); 

    WriteJsJson(); 
    Activity context; 

    context = _activity.get(); 
    Intent fire = new Intent(context, WebviewActivity.class); 
    switch (_reportType) { 
     case 1 : 
      fire.putExtra("target", "daily"); // Parameter to tell the webview activity to open the right report. 
     case 2 : 
      fire.putExtra("target", "week"); 
     case 3 : 
      fire.putExtra("target", "month"); 
    } 
    startActivity(fire); 

    webview.setWebViewClient(new WebViewClient() { 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      grabScreen(); //method for taking screenshot and storing it... 
     } 
    }); 

答えて

2

あなたはWebViewの過程を見ることがsetWebChromeClientを追加することができます。

webview.getSettings().setJavaScriptEnabled(true); 
    webview.setWebChromeClient(new WebChromeClient() { 
     public void onProgressChanged(WebView view, final int progress) { 
      progressBar.setProgress(progress); 
      if (progress == 100) { 
       grabScreen(); 
      } 
     } 
    }); 
+0

このコードは完璧に動作していますか? –

2

onPageFinishedページの読み込みが完了したことをホストアプリケーションに通知します。このメソッドは、メインフレームに対してのみ呼び出されます。 onPageFinished()が呼び出されると、レンダリング画像がまだ更新されていない可能性があります。新しいピクチャの通知を取得するには、onNewPicture(WebView、Picture)を使用します。

サンプルコード

mWebView.setPictureListener(new MyPictureListener()); 
//... and then later on.... 
class MyPictureListener implements PictureListener { 

    @Override 
    public void onNewPicture(WebView view, Picture arg1) { 
     // put code here that needs to run when the page has finished loading and 
     // a new "picture" is on the webview.  
    }  
} 
+0

有望です。しかしonNewPictureは非推奨です:https://developer.android.com/reference/android/webkit/WebView.PictureListener.html#onNewPicture – cashmoneyscience

関連する問題