gpt4 book ai didi

android - 网页 View 的自定义字体

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:13:37 32 4
gpt4 key购买 nike

我正在尝试为我的 WebView 建立一个新的自定义字体(otf 文件)。

我把 anbaaarabic_bold.otf 放在 Assets 文件中。

我是怎么做的:

String head = "<head><style>@font-face {font-family: 'verdana';src: url('file://"+ getActivity().getFilesDir().getAbsolutePath()+ "/anbaaarabic_bold.otf');}body {font-family: 'verdana';}</style></head>";
String htmlData= "<html>"+head+"<body style=\"font-family: verdana\">"+body+"</body></html>" ;

mBodyArticle.loadDataWithBaseURL("http://nada", htmlData,
"text/html", "utf-8", "");

正文:包含我的 html 代码。

我不知道为什么字体不适用于我的 webview。正文 html 字体不会改变。

最佳答案

有一个bug report对于 Android,这似乎表明自定义字体不适用于某些语言(已提到泰语、希伯来语、波斯语和阿拉伯语)。谷歌的任何人都没有证实这一点,但有很多人报告了同样的问题。

建议的解决方案之一(至少有一位用户确认有效)是将字体从 otf 转换为 svg。有许多在线工具可以为您执行此操作(Everything Fonts 是一个示例),但您可能会觉得这是一种受版权保护的字体 - 请确保您的字体许可证允许此类转换。

此外,当您转换字体后,在文本编辑器中打开它并检查 svg 元素是否已命名空间。它应该看起来像这样:

<svg xmlns="http://www.w3.org/2000/svg">

如果只是<svg>如果没有命名空间,您可能需要手动添加 xmlns 属性。显然,没有命名空间的 svg 字体也不起作用。

关于android - 网页 View 的自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18032829/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com