Android KitKat动画和WebView渲染问题

Android KitKat动画和WebView渲染问题,android,webview,android-4.4-kitkat,Android,Webview,Android 4.4 Kitkat,在将动画运行到简单视图时,我面临渲染问题。我的设置有ViewPager,第一个片段包含一个WebView,第二个片段有我制作动画的自定义进度指示器 下图显示了这个问题,尽管指示器完全位于它自己的片段中,但不知何故它与WebView有关。我的猜测是,该平台使用相同的GPU渲染器,当有一个WebView时,它会被破坏 有人有相同的问题/找到了解决方法吗 谢谢。我的猜测有些正确。我找到了一个解决这个问题的方法 扩展WebView并覆盖所有构造函数 将自定义WebView的图层类型设置为“软件” API

在将动画运行到简单视图时,我面临渲染问题。我的设置有ViewPager,第一个片段包含一个WebView,第二个片段有我制作动画的自定义进度指示器

下图显示了这个问题,尽管指示器完全位于它自己的片段中,但不知何故它与WebView有关。我的猜测是,该平台使用相同的GPU渲染器,当有一个WebView时,它会被破坏

有人有相同的问题/找到了解决方法吗


谢谢。

我的猜测有些正确。我找到了一个解决这个问题的方法

扩展WebView并覆盖所有构造函数 将自定义WebView的图层类型设置为“软件” API级别>=11

setLayerType(LAYER_TYPE_SOFTWARE, null);
空气污染指数<11

try {
    Method setLayerType = getClass().getMethod("setLayerType",
            new Class[] { int.class, Paint.class });
    if (setLayerType != null)
        setLayerType.invoke(this, new Object[] { 1, null });
} catch (NoSuchMethodException e) {
} catch (IllegalArgumentException e) {
} catch (IllegalAccessException e) {
} catch (InvocationTargetException e) {
}
注意:此实现极大地影响了WebView的性能。

看看这个

在基特卡特,一切都发生了很大的变化

为什么不尝试将目标SDK设置为18。如果执行此操作,则webview将在兼容模式下工作