【问题标题】:WebView.draw() not properly working on latest Android System WebView UpdateWebView.draw() 在最新的 Android 系统 WebView 更新上无法正常工作
【发布时间】:2015-05-06 13:24:51
【问题描述】:

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

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

我已尝试卸载 Android 系统 WebView 的所有更新(从而将其恢复为版本 39 (1743759-arm),并且在出厂版本中功能正常。所以这个问题是由于 Android 的相对较新的更新所致System WebView. 我找不到更改日志,所以我无法弄清楚发生了什么变化以及如何修复它。 下面是一个快速的视觉解释:

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

【问题讨论】:

  • 我遇到了同样的问题。在设置内容视图之前,我尝试在 onCreate 中调用WebView.enableSlowWholeDocumentDraw() ,但这不起作用。你能分享你解决这个问题的步骤吗?
  • 我的问题出在片段中,所以我不得不从onCreateView() 方法中调用WebView.enableSlowWholeDocumentDraw()。如果我有时间,我会在一个 Activity 中尝试,看看它在接下来的几天内是否有效。
  • 我也在使用 Fragment。我也试过从onCreate 调用它,但没有任何区别。
  • 顺便说一句,这是我的问题。同一个,但在问之前我找不到你的问题。 My SOF Question

标签: android webview bitmap


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    相关资源
    最近更新 更多