2009-08-10 27 views

Respuesta

7

No estoy seguro de entender. WebView solo muestra el código HTML que le da, por lo que solo usaría HTML/CSS normal para modificar el contenido que se muestra dentro.

+0

Claro, pero me gustaría hacer eso sin modificar el html subyacente. – yanchenko

+0

¿El HTML subyacente es algo de un tercero? Siempre se puede insertar javascript al final que lo modificará y luego llamar al javascript de la Actividad misma haciendo wvMyWebView.loadUrl ("llamar a la función de JavaScript aquí"); – MattC

2

Cuando el búfer es DISPONIBLE, la modificación del HTML directamente es una solución ideal. El tipo de letra, color, tipo de letra, el estilo puede verse afectados a través de HTML:

String szMessage = "<font face='trebuchet' size=30><a href=zz><b>click me</b></a></font>"; 

TextView tv = (TextView)findViewById(R.id.tv_message); 
tv.setText(Html.fromHtml(szMessage), BufferType.SPANNABLE); 
22

algo así como

String text = "<html><head>" 
      + "<style type=\"text/css\">body{color: #fff; background-color: #000;}" 
      + "</style></head>" 
      + "<body>"       
      + your_string_text_here 
      + "</body></html>"; 

webview1.loadData(text, "text/html", "utf-8"); 
5

Ésta es la manera más fácil que encontré (cambiar el color del texto a blanco, por ejemplo):

webview.loadUrl("javascript:document.body.style.color=\"white\";"); 
+0

cómo cambiar el tipo de fuente –

+0

tenga en cuenta que deberá habilitar javascript para la vista web en cuestión; de lo contrario, la llamada no tendrá efecto – sfera

3

@ rafraph's answer no funcionó para mí. Tuve que usar

webView.loadUrl("javascript:document.body.style.setProperty(\"color\", \"white\");"); 
7

Tuve que ponerlo en el método onPageFinished.

_webView.setWebViewClient(new WebViewClient() { 
    public void onPageFinished(WebView view, String url) { 
     _webView.loadUrl(
      "javascript:document.body.style.setProperty(\"color\", \"white\");" 
     ); 
    } 
}); 
1

Puede concatenar su respuesta un cuerpo etiqueta HTML con el estilo CSS de color hexadecimal, este es un ejemplo usando una respuesta JSON

En primer lugar: la función de decodificación JSON a formato HTML

public String stripHtml(String html) { 
    return Html.fromHtml(html).toString(); 
} 

Segundo: Cargar datos en WebView (no url)

String string_html; 
string_html = "&lt;body style=&quot;color:#535362;&quot;&gt;" + youStringHTML + "&lt;/body&gt;"; 
webView.loadDataWithBaseURL(null, stripHtml(string_html), "text/html", "utf-8", null); 
2

Esto funcionó para mí

Cuestiones relacionadas