在WebView中更改文本颜色?

时间:2009-08-10 13:43:15

标签: android webview

有一种改变背景颜色但不改变字体的方法 有什么想法吗?

7 个答案:

答案 0 :(得分:28)

类似

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");

答案 1 :(得分:9)

我必须把它放在onPageFinished方法中。

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

答案 2 :(得分:8)

我不确定我理解。 WebView只显示您提供的HTML,因此您只需使用普通的HTML / CSS来修改其中显示的内容。

答案 3 :(得分:5)

这是我找到的最简单的方法(例如,将文本颜色更改为白色):

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

答案 4 :(得分:3)

这对我有用

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

答案 5 :(得分: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);

答案 6 :(得分:1)

您可以使用CSS样式十六进制颜色将您的答案与一个正文标记HTML连接起来,这是一个使用JSON响应的示例

首先:将JSON解码为HTML格式的功能

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

第二:在WebView中加载数据(无网址)

 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);