169 votes

WebView Android style background-color : transparent ignoré sous android 2.2

Je me bats pour créer une WebView avec fond transparent.

Ensuite, je charge une page html avec

La couleur d’arrière-plan de l’affichage Web est transparente, mais dès que la page est chargée, il est remplacé par un fond noir de la page html. Cela se produit uniquement sur android 2.2, il fonctionne sous android 2.1.

Donc y a-t-il quelque chose à ajouter dans le code de page html pour le rendre vraiment transparent ?

304voto

scottyab Points 6760
Désolé pour les problèmes que vous rencontrez.

131voto

Ceetn Points 1648

Au fond de ce problème mentionné plus tôt , il y a une solution. C’est une combinaison des 2 solutions.

Lorsque vous ajoutez ce code à la WebViewer après chargement de l’url, il fonctionne (API 11+).

Il fonctionne même lorsque hardeware accélération est en marche

37voto

osayilgan Points 2275

J'ai eu le même problème avec 2.2 et aussi dans 2.3. J'ai résolu le problème en donnant l'alpa valeur html pas dans android. J'ai essayé beaucoup de choses et que j'ai trouvé est - setBackgroundColor(); couleur ne fonctionne pas avec la valeur alpha. webView.setBackgroundColor(Color.argb(128, 0, 0, 0)); ne fonctionnera pas.

voici donc ma solution a fonctionné pour moi.

      String webData = StringHelper.addSlashes("<!DOCTYPE html><head> <meta http-equiv=\"Content-Type\" " +
      "content=\"text/html; charset=utf-8\"> </head><body><div style=\"background-color: rgba(10,10,10,0.5); " +
      "padding: 20px; height: 260px; border-radius: 8px;\"> $$$ Content Goes Here ! $$$ </div> </body></html>");

Et en Java,

    webView = (WebView) findViewById(R.id.webview);
    webView.setBackgroundColor(0);
    webView.loadData(webData, "text/html", "UTF-8");

Et voici la Sortie capture d'écran ci-dessous.enter image description here

31voto

jptsetung Points 3204

En fait, c’est un bug et personne ne trouvé une solution à ce jour. Un problème a été créé. Le bug est toujours là en nid d’abeille.

Il étoiles s’il vous plaît si vous pensez que c’est important : http://code.google.com/p/android/issues/detail?id=14749

22voto

Ali Points 1597

C’est comment vous le faites :

Tout d’abord faire votre projet de base sur 11, mais dans AndroidManifest valeur minSdkVersion 8

Android : hardwareAccelerated = « false » n’est pas nécessaire, et il n’est pas compatible avec 8

Pour votre securité mettre ceci dans votre style :

a fonctionné pour moi sur 2.2 et 4

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X