asasasdasfaf
caolin-tech
2018-05-25 06:37
采纳率: 75%
浏览 2.8k

android webView 修改页面字体颜色

    webview加载一个界面后,在onPageFinished中加入修改页面字体颜色css,如下String nightCode = "";
    try {
        InputStream is = getResources().openRawResource(R.raw.day);
        byte[] buffer;
        buffer = new byte[is.available()];
        is.read(buffer);
        is.close();
        nightCode = Base64.encodeToString(buffer, Base64.NO_WRAP);
    } catch (IOException e) {
        e.printStackTrace();
    }
    mWeb.loadUrl("javascript:(function() {"
            + "var parent = document.getElementsByTagName('head').item(0);"
            + "var style = document.createElement('style');"
            + "style.type = 'text/css';"
            + "style.innerHTML = window.atob('" + nightCode + "');"
            + "parent.appendChild(style)" + "})();");

            加载完成后,每次都是先显示原来的页面,过一秒左右在页面所有字体颜色都修改了,有什么办法显示页面之前就替换好字体颜色,先谢谢各位了。
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

10条回答 默认 最新

  • xingchenshi
    xingchenshi 2018-05-26 01:23
    已采纳

    交给前端人员处理,不是你能解决的。

    点赞 评论
  • qq_36661375
    叼着烟吻着你的香 2018-05-25 06:46

    提取公共的样式,就可以搞定

    点赞 3 评论
  • a718089112
    a718089112 2018-05-25 06:43

    别用js修改样式啊,直接在页面把样式写到页面元素的标签里面

    点赞 评论
  • genimi_123
    genimi_123 2018-05-25 06:45

    写到页面元素的标签里

    点赞 评论
  • weixin_41630693
    潴头 2018-05-25 06:49

    #include
    using namespace std;

    int main()
    {
    /*
    代码
    */

    system("pause");
    return 0;
    }

    点赞 评论
  • qq_41224352

    写到页面元素的标签里面,可以吧

    点赞 评论
  • intmainhhh
    pyai.top 2018-05-25 07:26
    点赞 评论
  • yztbydh
    最爱吃葡萄 2018-05-25 08:27

    你这个的原因是:**在onPageFinish的时候再修改数据,页面已经加载完了,所以才会有这种过了一会再变的效果**

    解决方案1:

    自己读取网页数据,更改对应的样式之后,再加载页面

    解决方案2:

    WEB端提供接口,根据不同的API返回不同的样式

    点赞 评论
  • afei1437
    afei1437 2018-05-26 06:28

    提取前面的样式就可以了

    点赞 评论
  • qq_32117641
    winrh 2018-05-26 11:15

    可以用行内样式,虽然不规范

    点赞 评论

相关推荐