Android WebView硬件加速Artefact解决方法

时间:2013-06-12 07:27:06

标签: android css webview hardware-acceleration

因此Android中存在WebView硬件加速的已知错误, 请参阅此处:https://code.google.com/p/android/issues/detail?id=17352

禁用硬件加速不是我的选择。

我读过这些很棒的参考资料:

我的问题是,如果打开HWA,是否有人知道任何CSS / HTML变通方法以防止可能出现的渲染伪像?

当我将焦点放在表单字段时,我只看到它们,它似乎会导致vsync-esque和subpixel gitches。当我关注这个领域时,整个页面似乎都在抖动。

似乎position: absolute也与此有关。

任何人都有解决这个问题的经验吗?

3 个答案:

答案 0 :(得分:0)

启用HWA时,我在渲染时遇到了类似的问题。当我将以下行应用于body(在css中)时,呈现问题消失了。

body {
  -webkit-transform: translateZ(0);
}

答案 1 :(得分:0)

将此代码放在您的班级中:

webview.getSettings().setRenderPriority(RenderPriority.HIGH); 

if (Build.VERSION.SDK_INT >= 19) {
    webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
}       
else {
    webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}

答案 2 :(得分:-1)

添加:

-webkit-backface-visibility: hidden;
-webkit-perspective: 1000;
backface-visibility: hidden;
perspective: 1000;

如果您使用3D转换..这是一个便宜的技巧但它会在iPad上特别提高性能..

此外,您可以尝试

-webkit-transform: rotateZ(0deg);

AFAIK旋转可以提升性能,因为gpu在旋转方面要好得多..

另一种方法是在屏幕上的每个元素上放置一个“无功能”转换。

如果我可以帮助你,请告诉我。