“body background-color:transparent”对android 4.0.3的webview没有影响

时间:2012-01-17 13:19:51

标签: android-webview android-4.0-ice-cream-sandwich

我想在imageView上的静态图像上显示webView。

我将透明色设置为webView,如此

webview.setBackground(0);

我将background-color设置为透明

<html>
<head>
</head>
<body style="background-color:transparent">
</body>
</html>

但Webview的背景显示为白色。

我会显示任何问题并尝试以下页面的解决方案,但无需更改。

你有什么想法吗?请帮我。

4 个答案:

答案 0 :(得分:10)

我在带有ICS(4.0)的设备上遇到了与白色WebView背景相同的问题!

NcJlee的回答确实从webview中删除了白色背景,但它需要API等级11!它不适用于较旧的API!

    webView.setBackgroundColor(0);
    webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);

解决方案是在.xml布局资源中的webview上设置android:layerType =“software”属性。

    <WebView
        android:id="@+id/webviev"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/transparent"
        android:layerType="software" />

答案 1 :(得分:5)

避免这种情况的一种方法是取消选中

中的“强制GPU渲染”
    Settings -> Developer Options -> Force GPU Rendering

但这并没有解决问题。我在模拟器中尝试过这段代码,但它确实有效。通过使用软件而不是硬件加速来强制webview呈现。

    webview.setBackgroundColor(Color.TRANSPARENT);
    webview.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);

它能解决你的问题吗?

答案 2 :(得分:0)

尝试将此代码用于透明的webview

webView.setBackgroundColor(Color.TRANSPARENT);

答案 3 :(得分:0)

尝试调用setLayerType或在xml中指定android:layerType导致编译错误。尽管将minSdkVersion或targetSdkVersion设置为11 +,但仍然发生了这种情况。

所以,我最终使用反射按照以下建议调用setLayerType:Transparent WebView not working on Android v4.0