我目前正在使用WebView.draw()拍摄整个WebView的屏幕快照,并将其保存到Bitmap中(基于this solution)。到目前为止,它一直运行良好。

我最近在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的更新相对较新造成的。我无法找到更改日志,因此无法弄清发生了什么更改以及如何解决它。
以下是快速的视觉说明:

还有其他人遇到此问题并找到可能的解决方案吗?

最佳答案

创建任何WebView之前,您需要调用WebView.enableSlowWholeDocumentDraw()。也就是说,如果布局中有任何WebView,请确保在调用setContentView()中的onCreate()之前先调用此方法。

10-06 06:57
查看更多