2009-08-10 4 views

ответ

7

Я не уверен, что понимаю. WebView просто отображает HTML-код, который вы ему даете, чтобы просто использовать обычный HTML/CSS для изменения содержимого, отображаемого внутри.

+0

Несомненно, но я бы хотел сделать это без модификации базового html. – yanchenko

+0

Является ли лежащим в основе HTML что-то от третьего лица? Вы всегда можете вставить javascript в конце, который изменит его, а затем вызовет javascript из самой операции, выполняющей wvMyWebView.loadUrl (здесь функция javascript); – MattC

2

Когда буфер 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); 
22

что-то вроде

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

Это самый простой способ я нашел (изменить цвет текста на белый, например):

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

Как изменить тип шрифта –

+0

Обратите внимание, что вам нужно будет включить javascript для рассматриваемого веб-представления, иначе звонок не будет иметь эффекта – sfera

3

@ Ответ rafraph не работает для меня. Мне пришлось использовать

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

Мне пришлось положить его в метод onPageFinished.

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

Вы можете сцепить свой ответ один тело тегов HTML со стилем CSS шестнадцатеричного цветом, это пример использования ответа JSON

Первая: функция для декодирования JSON в формат HTML

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

Второе: загрузка данных в WebView (нет 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

Это сработало для меня