最近在开发一个机遇安卓的定制浏览器。访问的页面有些其他语言文字,导致浏览网页时出现字幕显示为方框。我通过以下代码解决了文字显示问题,但是网页布局全部乱作一团...很纳闷。高手出来指点一下吧。String htmlStr = getHTML(url, "UTF-8");//获取请求页面内容String tmp="<link href=\"file:///android_asset/myfont.css\" rel=\"stylesheet\" type=\"text/css\" />";if(htmlStr.contains("</head>")){
htmlStr = htmlStr.replace("</head>", tmp);//添加自己的CSS文件到网页内容
}
mCurrentWebView.loadDataWithBaseURL(url, htmlStr,"text/html", "utf-8", "");//显示网页内容其中的myfont.css内容如下:
@font-face { font-family: MyCustomFont; src: url("fonts/ALPEKRAN.TTF") }
body {font-family: MyCustomFont, Verdana, Arial, sans-serif; text-align:right;}
通过以上代码我实现了文字正常显示,但是最后页面布局都乱了。谁能解决一下这个问题啊?!感激不尽!在线等....

解决方案 »

  1.   

    补充一下,font文件放到了工程里的assets/fonts目录下。调用字体成功.
      

  2.   

    1、在mCurrentWebView.loadDataWithBaseURL(url, htmlStr,"text/html", "utf-8", "");前面用Log输出htmlStr的内容,并发上来,不要提供原始网页的,只要提供你通过getHTML获取后的htmlStr的内容。2、htmlStr = htmlStr.replace("</head>", tmp);这段把<head>结尾替换掉了,是否应该改成
    htmlStr = htmlStr.replace("</head>", tmp+"</head>");
      

  3.   

    3、将CSS中的
    @font-face { font-family: MyCustomFont; src: url("fonts/ALPEKRAN.TTF") }
    改为
    @font-face { font-family: MyCustomFont; src: url("/fonts/ALPEKRAN.TTF") format('truetype') }
      

  4.   


    哎呀呀,犯了一个低级错误啊。但是我改了,还是不行。目前问题是个这样,我自己写的一个test.htm页面放到了服务器上,上面没有任何加载CSS文件的link标签,经过测试,显示该页面正常。这说明调用了本地字体文件,我的CSS文件里面的字体路径应该也没问题(CSS文件在fonts目录之外)。但是访问有link标签的网站页面就不能加载字体了....很纳闷啊谢谢你关注,不知你能不能再帮我看看这个问题
      

  5.   

    问题解决了,是CSS写的不全,不仅要设置body的字体,还要设置其他标签的字体