Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make Android Webview Background Transparent at KITKAT(4.4)

Recently, I implement webbased-application on Android. I want to make webview's background color Transparent.

Searching, i've found that two lines for Webview.

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

It works for Android version 4.0~4.3, but does not work for 4.4 KITKAT.

I got just white-background. Addtionally, when i set background color, black, shown below :

newWebView.setBackgroundColor(Color.BLACK);

Also I saw white-background. Is there anybody knows the solution ?

like image 553
Stern Avatar asked May 24 '14 08:05

Stern


2 Answers

This might help you

    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);
    }
});

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

like image 121
mustafa96m Avatar answered Oct 11 '22 21:10

mustafa96m


works for android 6 (for me), see previous answer

            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);
like image 20
VKDev Avatar answered Oct 11 '22 22:10

VKDev