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