Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get transparent background of webView for 4.0 version

Tags:

I am looking for a piece of code which is able to get a transparent background in a WebView for version 4.0 and above. My code is working fine with version 2.3 but it is getting a white background when I run it on version 4.0 and 4.2. I am providing my code which is working for version 2.3, but not in 4.0 and 4.2. Please help me. Thanks in advance...

In XML:

<WebView     android:id="@+id/webView"     android:layout_marginTop="6dp"     android:layout_below="@+id/image"     android:layout_width="match_parent"     android:layout_height="fill_parent"     android:hardwareAccelerated ="true"             /> 

In activity file:

webView = (WebView) findViewById(R.id.webView); backButton = (ImageView) findViewById(R.id.backButton); webView.setBackgroundColor(0);                       webView.loadUrl("file:///android_asset/Info.html"); webView.setBackgroundColor(Color.TRANSPARENT);   /* this is used to make the background white after loading the file on screen. */ 
like image 665
Tapesh Avatar asked Mar 21 '13 14:03

Tapesh


People also ask

How do I make my WebView transparent?

There is no difference between webView. setBackgroundColor(0x00FFFFFF); and webView. setBackgroundColor(0x00); Both are supposed to be transparent color.

How do you override a WebView?

If you want to override certain methods, you have to create a custom WebView class which extends WebView . Also, when you are inflating the WebView , make sure you are casting it to the correct type which is CustomWebView . CustomWebView webView = (CustomWebView) findViewById(R. id.

How can I make WebView keep a video or audio playing in the background?

Solution. After searching a lot, I found this thread. I did something similar: Just extend WebView and override onWindowVisibilityChanged . This way, the audio continues to play if the screen is locked or another app is opened.


2 Answers

Try this:

webView.setBackgroundColor(0x00000000); 

and remove android:hardwareAccelerated ="true"
as that is off-topic.

like image 166
gunar Avatar answered Sep 23 '22 07:09

gunar


If webview is scrolable:

Add this to the Manifest:

android:hardwareAccelerated="false" 

OR

Add the following to WebView in the layout:

android:background="@android:color/transparent" android:layerType="software" 

Add the following to the parents scroll view:

android:layerType="software" 
like image 23
Baton Avatar answered Sep 23 '22 07:09

Baton