Estoy luchando por crear un WebView con fondo transparente.
webView.setBackgroundColor(0x00FFFFFF);
webView.setBackgroundDrawable(myDrawable);
Luego cargo una página html con
<body style="background-color:transparent;" ...
El color de fondo de WebView es transparente, pero tan pronto como se carga la página, se sobrescribe con un fondo negro de la página html. Esto solo ocurre en Android 2.2, funciona en Android 2.1.
Entonces, ¿hay algo que agregar en el código de la página html para que sea realmente transparente?
android
background
webview
transparency
transparent
jptsetung
fuente
fuente
Respuestas:
Esto funcionó para mí
fuente
android:hardwareAccelerated="true"
Al final de este tema mencionado anteriormente hay una solución. Es una combinación de 2 soluciones.
Al agregar este código al WebViewer después de cargar la url, funciona (API 11+).
Incluso funciona cuando la aceleración del hardware está activada
fuente
Tuve el mismo problema con 2.2 y también en 2.3. Resolví el problema dando el valor alpa en html no en android. Intenté muchas cosas y descubrí que el
setBackgroundColor();
color no funciona con el valor alfa.webView.setBackgroundColor(Color.argb(128, 0, 0, 0));
no trabajará.Así que aquí está mi solución, funcionó para mí.
Y en Java
Y aquí está la captura de pantalla de Salida a continuación.
fuente
En realidad es un error y nadie ha encontrado una solución hasta ahora. Se ha creado un problema. El error todavía está aquí en forma de panal.
Marque con una estrella si cree que es importante: http://code.google.com/p/android/issues/detail?id=14749
fuente
Así es como lo haces:
Primero haga que su proyecto se base en 11, pero en AndroidManifest establezca minSdkVersion en 8
android: hardwareAccelerated = "false" es innecesario y es incompatible con 8
Por seguridad pon esto en tu estilo:
trabajó para mí en 2.2 y 4
fuente
Lo más importante no fue mencionado.
El html debe tener una
body
etiqueta conbackground-color
set totransparent
.Entonces la solución completa sería:
HTML
Actividad
fuente
el siguiente código funciona bien en Android 3.0+, pero cuando prueba este código debajo de Android 3.0, su aplicación se cierra por la fuerza.
Intenta el siguiente código en tu API inferior a 11 .
O
También puede probar el siguiente código que funciona en todas las API bien.
uso del código anterior completo para mí.
fuente
Tratar
webView.setBackgroundColor(0);
fuente
El siguiente código funciona para mí, aunque tengo varias vistas web y el desplazamiento entre ellas es un poco lento.
fuente
android:hardwareAccelerated="false"
el AndroidManifest para elactivity
elemento.v.setLayerType(LAYER_TYPE_SOFTWARE, null);
También funcionará.Utilizar este
fuente
webView.setBackgroundColor(Color.TRANSPARENT)
antes o después deloadUrl()
/loadData()
.android:hardwareAccelerated="false"
en el manifiesto.Probado en IceCream Sandwich
fuente
Solo usa estas líneas .....
Y recuerde un punto que siempre establece el color de fondo después de cargar datos en la vista web.
fuente
esto definitivamente funcionará ... establecer fondo en XML con Editbackground. Ahora ese fondo se mostrará
fuente
configura el bg después de cargar el html (de las pruebas rápidas parece que cargar el html restablece el color bg ... esto es para 2.3)
si está cargando el html de los datos que ya tiene, basta con hacer un .postDelayed en el que simplemente establece el bg (por ejemplo, transparente) es suficiente ...
fuente
Si webview es desplazable:
Agregue esto al manifiesto:
O
Agregue lo siguiente a WebView en el diseño:
Agregue lo siguiente a la vista de desplazamiento de los padres:
fuente
Pruebe webView.setBackgroundColor (Color.parseColor ("# EDEDED"));
fuente
Estaba tratando de poner una superposición HTML transparente sobre mi vista GL pero siempre tiene un parpadeo negro que cubre mi vista GL. Después de varios días tratando de deshacerme de este parpadeo, encontré esta solución que es aceptable para mí (pero es una pena para Android).
El problema es que necesito aceleración de hardware para mis agradables animaciones CSS y, por
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
lo tanto, no es una opción para mí.El truco consistía en poner un segundo (vacío)
WebView
entre mi vista GL y la superposición HTML. EstodummyWebView
me dijeron que la presentación en modo SW, y ahora mi HTML superposiciones renders suave en HW y el parpadeo no más negro.No sé si esto funciona en otros dispositivos que no sean My Acer Iconia A700, pero espero poder ayudar a alguien con esto.
fuente
Esto funcionó para mí. intente configurar el color de fondo después de cargar los datos. para ese setWebViewClient en su objeto webview como:
fuente
Poner a prueba o probar:
fuente
Si nada ayuda, entonces lo más probable es que tenga un tamaño fijo
webView
, cambie el ancho y la altura a wrap_content omatch_parent
, debería funcionar. Eso funcionó para mí cuando intenté cargar un GIF.fuente
Puede usar BindingAdapter así:
Java
XML:
Recursos
fuente
Es la mejor respuesta. ¡Funciona!
fuente