我正在尝试截取 Android 中的 WebView 的屏幕截图。但是屏幕截图触发得太快,结果我得到了一张空白的屏幕截图。我尝试实现一个 webviewclient 和 onPageFinished 以在拍摄之前监听 webview 加载,但它没有用。如何确保在截取屏幕截图之前加载 View ?
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...
}
});
最佳答案
可以添加setWebChromeClient查看webview的进程。
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, final int progress) {
progressBar.setProgress(progress);
if (progress == 100) {
grabScreen();
}
}
});
关于java - 在截图之前等待 webview 加载 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44567731/