【问题标题】:Android - Html.fromHtml() with custom fontsAndroid - 带有自定义字体的 Html.fromHtml()
【发布时间】:2015-01-18 16:16:48
【问题描述】:

我正在尝试将 HTML 文本分配到 TextView。这是 HTML 的示例:

<font face="myCustomFont1">Some Text</font>
<font face="myCustomFont2">Some More Text</font>

我正在使用Html.fromHtml(myHtmlString) 来执行此操作。

如果字体是系统字体,例如 sans-serif-xxx,那么一切正常。问题是使用我添加到我的应用程序的自定义 .ttf / .otf 文件。

有没有办法让 fromHtml 识别自定义字体?除了这个链接,我在网上找不到任何东西:Using Html.fromHtml to set custom Typeface(看看第二个答案 - 在 cmets 里面) 但它让问题没有答案。

【问题讨论】:

  • 接受的答案是:No, there's no way to do so. 我不会说这是没有答案...
  • 谢谢,我可以阅读。接受的答案是错误的。我实际上正在查看第二个答案,该答案指出我应该使用有效的“面部”属性。 cmets 询问自定义字体,但没有给出答案。我已经编辑了我的问题以使其更清楚。
  • The accepted answer is wrong. ... 真的?!
  • 接受的答案是“如您所见,字体标签仅支持大小和颜色”——这是错误的,因为“面”也受支持,而大小支持。
  • face 仅支持作为“内部”字体。

标签: android html fonts android-typeface


【解决方案1】:

有没有办法让 fromHtml 识别自定义字体?

不适用于您提出的语法。欢迎您 fork Html 类并将其添加到其中。鉴于 Html 的实现方式,您将无法通过子类 AFAICT 启用此功能。

使用TagHandler,您可能能够在不分叉Html 的情况下完成此操作,但TagHandler 只会被调用用于无法识别的HTML 标记。由于&lt;font&gt; 被识别,TagHandler 不会被调用。但是,如果您可以控制 HTML,则可以创建一个 &lt;gil&gt; 标记并将其用作通过您提供的 TagHandler 路由的 &lt;font&gt; 等效项。我没有用过TagHandler,这就是我为什么要对冲这是否可行的原因。

【讨论】:

    猜你喜欢
    • 2011-05-17
    • 2016-03-25
    • 2015-12-12
    • 1970-01-01
    • 2013-03-15
    • 1970-01-01
    • 2011-06-05
    • 2013-12-19
    • 2017-08-21
    相关资源
    最近更新 更多