为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Android中改变WebView的字体?

如何在Android中改变WebView的字体?

catspeake 2019-10-21 16:12:14
如何在Android中改变WebView的字体?我希望将webview的默认字体更改为自定义字体。我正在使用webview为Android开发一个双语浏览器应用程序。我尝试通过在资产中放置自定义字体来获取自定义字体的实例。但仍然不能将webview的默认字体设置为我的字体。这就是我试过的:Typeface font = Typeface.createFromAsset(getAssets(), "myfont.ttf");  private WebView webview;WebSettings webSettings = webView.getSettings();  webSettings.setFixedFontFamily(font);有人能纠正这种情况或建议其他方法将webview的默认字体更改为自定义字体吗?谢谢!
查看完整描述

3 回答

?
萧十郎

TA贡献1815条经验 获得超12个赞

这里有一个有用的例子这个项目..归根结底是:

  1. 在你的

    assets/fonts

    文件夹中,放置所需的OTF或TTF字体(此处是MyFent.otf)
  2. 创建一个HTML文件,用于WebView的内容,在assets文件夹(这里在里面)assets/demo/my_page.html):

    <html><head><style type="text/css">@font-face {
        font-family: MyFont;
        src: url("file:///android_asset/fonts/MyFont.otf")}body {
        font-family: MyFont;
        font-size: medium;
        text-align: justify;}</style></head><body>Your text can go here! Your text can go here! Your text can go here!</body></html>
  3. 从代码中将HTML加载到WebView中:

    webview.loadUrl("file:///android_asset/demo/my_page.html");

注意,通过loadData()是不允许的。根据文件:

请注意,JavaScript的相同来源策略意味着在使用此方法加载的页面中运行的脚本将无法访问使用“Data”以外的任何方案加载的内容,包括“http(S)”。要避免这一限制,请使用loadDataWithBaseURL()和适当的基本URL。

正如@JaakL在下面的注释中所建议的,为了从字符串中加载HTML,您应该提供指向您的资产的基本URL:

webView.loadDataWithBaseURL("file:///android_asset/", htmlData);

中引用字体时htmlData,然后您可以简单地使用/fonts/MyFont.otf(省略基URL)。



查看完整回答
反对 回复 2019-10-22
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

更简单的是,您可以使用AssetURL格式引用字体。不需要编程!

@font-face {
   font-family: 'myface';
   src: url('file:///android_asset/fonts/myfont.ttf'); } body { 
   font-family: 'myface', serif;


查看完整回答
反对 回复 2019-10-22
  • 3 回答
  • 0 关注
  • 394 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信