C'è un metodo per modificare il colore di sfondo ma non il carattere.
Qualche idea?Modifica del colore del testo in una WebView?
risposta
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.
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);
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");
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\";");
come cambiare il tipo di font –
nota che dovrai abilitare javascript per la visualizzazione web in questione, altrimenti la chiamata non avrà alcun effetto – sfera
@ rafraph's risposta non ha funzionato per me. Ho dovuto usare
webView.loadUrl("javascript:document.body.style.setProperty(\"color\", \"white\");");
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\");"
);
}
});
È 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 = "<body style="color:#535362;">" + youStringHTML + "</body>";
webView.loadDataWithBaseURL(null, stripHtml(string_html), "text/html", "utf-8", null);
Questo ha funzionato per me
Certo, ma mi piacerebbe farlo senza modificare l'html sottostante. – yanchenko
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