【问题标题】:How to make Android Webview Background Transparent at KITKAT(4.4)如何在 KITKAT(4.4) 使 Android Webview 背景透明
【发布时间】:2014-05-24 08:13:34
【问题描述】:

最近,我在 Android 上实现了基于 Web 的应用程序。 我想让 webview 的背景颜色透明

搜索,我找到了 Webview 的那两行。

newWebView.setBackgroundColor(0x00000000);                  
newWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

适用于Android 4.0~4.3版本,但不适用于4.4 KITKAT。

我只有白色背景。 另外,当我设置背景颜色时,黑色,如下所示:

newWebView.setBackgroundColor(Color.BLACK);

我还看到了白色背景。 有谁知道解决办法吗?

【问题讨论】:

标签: android webview transparent android-4.4-kitkat


【解决方案1】:

这可能对你有帮助

    webView.setBackgroundColor(0x00000000);
if (Build.VERSION.SDK_INT >= 11) webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);

this.wv.setWebViewClient(new WebViewClient()
{
    @Override
    public void onPageFinished(WebView view, String url)
    {
        view.setBackgroundColor(0x00000000);
        if (Build.VERSION.SDK_INT >= 11) view.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
    }
});

来源:http://premius.net/blog/andoid/118-android-webview-transparent-background-for-android-2-3-and-4-x.html

【讨论】:

  • 它适用于 4.3 及以下版本,但不适用于 4.4(kitkat) :(
【解决方案2】:

适用于 android 6(对我而言),请参阅上一个答案

            wv.setWebViewClient(new WebViewClient() {
                @Override
                public void onPageFinished(WebView view, String url) {
                    super.onPageFinished(view, url);
                    view.setBackgroundColor(ContextCompat.getColor(context, R.color.transparent));
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                        view.setLayerType(View.LAYER_TYPE_HARDWARE, null);
                    } else {
                        view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
                    }
                }
            });
            wv.setBackgroundResource(android.R.color.transparent);

【讨论】:

  • 也可以尝试添加 wv.setWebChromeClient
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-18
  • 1970-01-01
  • 2023-04-06
  • 2023-02-16
  • 1970-01-01
  • 2021-01-07
  • 1970-01-01
相关资源
最近更新 更多