android - 无法在 WebView 中使用自定义字体

标签 android css fonts webview android-webview

我的应用程序中有一个 Web View ,其中正文文本需要使用“Times New Roman”字体呈现。首先,我已将 .ttf 文件放在我的 Assets 文件夹中。

assets

我已将我的 style.css 文件修改为以下内容:

@font-face {
    font-family: "Times New Roman";
    src: url("Times-New-Roman.ttf");
}

#body{
    font-family: "Times New Roman",Arial,sans-serif;
    font-weight: normal;
    font-size: 8px;
}

然后我像这样创建我的 WebView:

WebView webView = new WebView(activity.getApplicationContext());
String child = "<html><head><link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\"><body>Test</body></html>";
webView.loadDataWithBaseURL("file:///android_asset/", child, "text/html", "UTF-8", null);
return webView;

但是当 WebView 以默认的 Android 字体而不是 Times New Roman 呈现时。我不知道这是否重要,但我从我的 MacBook 上的/Library/Fonts 文件夹中复制了字体,只是用“-”重命名它而不是空格。

最佳答案

我想通了。通过删除 CSS 中 body 之前的#,我让它工作了。如果比我更了解 HTML 的人看到了这个,您能描述一下为什么会这样吗?

关于android - 无法在 WebView 中使用自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24569479/

相关文章:

android - 如何使用 Firebase 列表适配器

java - 安卓日历: Get to the future day

css - SASS 维度总和

javascript - 如何在加载页面之前暂停浏览器渲染?

html - 在其他 div 之上分层 div

c++ - 根据字体名称和样式(粗体/斜体)获取字体文件名

android - 如何在 BroadCastReceiver 的 onReceive 方法中的 TextView 中设置文本?

java - java mqtt 代理列表及其在 Windows 中的可扩展性

android - Android 中字体的物理大小(以磅为单位)

amazon-web-services - 在 AWS Lambda 中包含自定义字体