Существует способ изменения цвета фона, но не шрифта.
Любые идеи?Изменение цвета текста в WebView?
ответ
Я не уверен, что понимаю. WebView просто отображает HTML-код, который вы ему даете, чтобы просто использовать обычный HTML/CSS для изменения содержимого, отображаемого внутри.
Когда буфер SPANNABLE, изменение HTML напрямую является идеальным решением. Шрифт, цвет, гарнитура, стиль могут быть затронуты через 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);
что-то вроде
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");
Это самый простой способ я нашел (изменить цвет текста на белый, например):
webview.loadUrl("javascript:document.body.style.color=\"white\";");
Как изменить тип шрифта –
Обратите внимание, что вам нужно будет включить javascript для рассматриваемого веб-представления, иначе звонок не будет иметь эффекта – sfera
@ Ответ rafraph не работает для меня. Мне пришлось использовать
webView.loadUrl("javascript:document.body.style.setProperty(\"color\", \"white\");");
Мне пришлось положить его в метод onPageFinished.
_webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
_webView.loadUrl(
"javascript:document.body.style.setProperty(\"color\", \"white\");"
);
}
});
Вы можете сцепить свой ответ один тело тегов HTML со стилем CSS шестнадцатеричного цветом, это пример использования ответа JSON
Первая: функция для декодирования JSON в формат HTML
public String stripHtml(String html) {
return Html.fromHtml(html).toString();
}
Второе: загрузка данных в WebView (нет URL)
String string_html;
string_html = "<body style="color:#535362;">" + youStringHTML + "</body>";
webView.loadDataWithBaseURL(null, stripHtml(string_html), "text/html", "utf-8", null);
Это сработало для меня
Несомненно, но я бы хотел сделать это без модификации базового html. – yanchenko
Является ли лежащим в основе HTML что-то от третьего лица? Вы всегда можете вставить javascript в конце, который изменит его, а затем вызовет javascript из самой операции, выполняющей wvMyWebView.loadUrl (здесь функция javascript); – MattC