gpt4 book ai didi

android - 如果启用了硬件加速(Android 3.0+),WebView "flashing"带有白色背景

转载 作者:IT王子 更新时间:2023-10-28 23:56:41 25 4
gpt4 key购买 nike

我遇到了 WebView (Android 3.0+) 的问题,WebView 在显示我的黑色背景之前总是显示白色背景(“闪烁”)。这是我的简单测试代码:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

WebView webView = new WebView(this);
webView.setBackgroundColor(Color.BLACK);
setContentView(webView);
loadWebView(webView);
webView.loadDataWithBaseURL("localhost://", "<html><head>" +
"<style>body {background-color: #000}img{max-width:100%}</style></head>" +
"<body>" +
"<img src=\"http://developer.android.com/images/practices/actionbar-phone-splitaction.png\" />" +
"</body></html>",
"text/html", "UTF-8", null);
}

我尝试了很多解决方案来解决这个问题,但并不幸运。

PS:关闭硬件加速不会出现此问题。有人遇到同样的问题并解决了吗?

谢谢。

最佳答案

我找到了最有效的解决方法,first mentioned here , 是在布局膨胀后设置透明背景颜色:

webView.setBackgroundColor(Color.argb(1, 0, 0, 0));

是的,这完全是 hack,但这是我发现的唯一一个在不禁用硬件加速的情况下运行良好的解决方案。

请注意,这不能通过在 XML 中设置背景来实现。

这已在 Jellybean 中得到解决,尽管一些用户报告在 KitKat 中看到了此问题。检查您是否没有禁用硬件加速,如果问题确实消失了,您可能希望将该代码包装在条件语句中以仅针对旧设备:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
webView.setBackgroundColor(Color.argb(1, 0, 0, 0));
}

关于android - 如果启用了硬件加速(Android 3.0+),WebView "flashing"带有白色背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9476151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com