我目前正在使用WebView.draw()
截取整个WebView的屏幕截图并将其保存到位图(基于this solution)。到目前为止,它一直运作良好。
我最近在Nexus 5上测试了这个功能(请注意,在Nexus 5上,有问题的WebView比屏幕大,所以用户可以水平和垂直滚动)运行Lollipop 5.1和Android的最新更新系统WebView(写作时版本42.0.2311.137),当我注意到生成的位图错误。它具有正确的尺寸,但它不是显示整个WebView,而是只有在调用方法时用户可以看到WebView的一部分。
我已经尝试卸载Android系统WebView的所有更新(从而将其恢复到版本39(1743759-arm),并且出厂版本的功能正常。所以这个问题是由于Android的相对较新的更新系统WebView。我无法找到更改日志,因此我无法弄清楚已更改的内容以及如何修复它。 以下是一个快速的直观说明:
是否还有其他人遇到此问题并找到了可能的解决方案?
答案 0 :(得分:15)
在创建任何WebView之前,您需要调用WebView.enableSlowWholeDocumentDraw()。也就是说,如果您的布局中有任何WebView,请确保在<{em>} setContentView()
中调用onCreate()
之前调用此方法。