Alterar a cor do texto em um WebView?
Pergunta
Há um método para a cor de fundo alterando, mas não fonte.
Alguma idéia?
Solução
Eu não tenho certeza eu entendo. O WebView apenas exibe o HTML você dá para que você iria usar apenas normal de HTML / CSS para modificar o conteúdo exibido dentro.
Outras dicas
algo 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");
Eu tive que colocá-lo no método onPageFinished.
_webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
_webView.loadUrl(
"javascript:document.body.style.setProperty(\"color\", \"white\");"
);
}
});
Esta é a maneira mais fácil que eu encontrei (alterar a cor do texto para branco, por exemplo):
webview.loadUrl("javascript:document.body.style.color=\"white\";");
Isso funcionou para mim
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
view.loadUrl(
"javascript:document.body.style.setProperty(\"color\", \"white\");"
);
}
});
Quando o tampão é SPANNABLE, modificar o código HTML directamente é uma solução ideal. A fonte, cor, tipo de letra, estilo podem ser afetados atravé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);
@ do rafraph não funcionou para mim. Eu tive que usar
webView.loadUrl("javascript:document.body.style.setProperty(\"color\", \"white\");");
Você pode concatenar a sua resposta só corpo tag HTML com estilo CSS cor hex, este é um exemplo usando uma resposta JSON
Primeiro: função para JSON decodificar para o formato HTML
public String stripHtml(String html) {
return Html.fromHtml(html).toString();
}
Em segundo lugar: Carregar dados em WebView (sem url)
String string_html;
string_html = "<body style="color:#535362;">" + youStringHTML + "</body>";
webView.loadDataWithBaseURL(null, stripHtml(string_html), "text/html", "utf-8", null);