相关疑难解决方法(0)

WebView.draw()无法正常使用最新的Android System WebView Update

我目前正在使用WebView.draw()整个WebView的屏幕截图并将其保存到Bitmap(基于此解决方案).到目前为止,它一直运作良好.

我最近在Nexus 5上测试了这个功能(请注意,在Nexus 5上,所讨论的WebView比屏幕更大,因此用户可以水平和垂直滚动)运行Lollipop 5.1和Android System WebView的最新更新(写入时的版本42.0.2311.137)当我注意到生成的位图错误时.它具有正确的尺寸,但它不是显示整个WebView,而是只有在调用方法时用户可以看到WebView的一部分.

我已经尝试卸载Android System WebView的所有更新(从而将其恢复到版本39(1743759-arm),并且出厂版本的功能正常.所以这个问题是由于Android System WebView的相对较新的更新.我无法找到更改日志,因此我无法弄清楚已更改的内容以及如何修复它.以下是一个快速的直观说明:

有没有其他人遇到过这个问题并找到了可能的解决方案

android bitmap webview

13
推荐指数
1
解决办法
3910
查看次数

Android:在Nougat中获取整个WebView的截图(Android 7)

我使用下面的代码从a截取屏幕截图WebView.它在Android 6及更低版本中运行良好,但在Android 7中它只占用webview的可见部分.

// before setContentView
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            WebView.enableSlowWholeDocumentDraw();
        }
...
// before set webview url
webView.setDrawingCacheEnabled(true);
// after html load complete
final Bitmap b = Bitmap.createBitmap(webView.getMeasuredWidth(),
                webView.getContentHeight(), Bitmap.Config.ARGB_8888);
        Canvas bitmapHolder = new Canvas(b);
        webView.draw(bitmapHolder);
Run Code Online (Sandbox Code Playgroud)

但位图b不完整.如何WebView在Android Nougat中截取整个屏幕截图?

编辑:
我发现webView.getContentHeight不行.我对整个webview高度进行了硬编码,效果很好.问题是:如何WebView在Android Nougat中获得整体内容高度?

android screenshot webview android-7.0-nougat

5
推荐指数
1
解决办法
575
查看次数