2009-08-10 4 views

risposta

7

Non sono sicuro di aver capito. La WebView mostra solo il codice HTML che hai fornito in modo da utilizzare semplicemente il normale HTML/CSS per modificare il contenuto visualizzato all'interno.

+0

Certo, ma mi piacerebbe farlo senza modificare l'html sottostante. – yanchenko

+0

L'HTML sottostante è qualcosa di una terza parte? Si può sempre iniettare javascript alla fine che lo modificherà e quindi richiamare il javascript dall'attività stessa eseguendo wvMyWebView.loadUrl ("chiama qui la funzione javascript"); – MattC

2

Quando il buffer è SPANNABLE, la modifica diretta dell'HTML è una soluzione ideale. Il tipo di carattere, colore, carattere tipografico, lo stile possono tutti essere influenzata tramite 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

qualcosa come

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

Questo è il modo più semplice che ho trovato (cambiare il colore del testo in bianco per esempio):

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

come cambiare il tipo di font –

+0

nota che dovrai abilitare javascript per la visualizzazione web in questione, altrimenti la chiamata non avrà alcun effetto – sfera

3

@ rafraph's risposta non ha funzionato per me. Ho dovuto usare

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

Ho dovuto inserirmi nel metodo onPageFinished.

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

È possibile concatenare la tua risposta un solo corpo tag HTML con il colore esadecimale di stile CSS, questo è un esempio di utilizzo di una risposta JSON

Primo: la funzione per la decodifica JSON in formato HTML

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

Secondo: caricare i dati in WebView (nessun 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

Questo ha funzionato per me