8

我正在尝试在TextView. TextView文本设置为textView1.setText(Html.fromHtml(htmlText));

html 包含粗体和斜体跨度

现在。我购买了自定义字体。该字体带有 3 个不同的文件 (ttf)。一个用于常规,一个粗体和斜体。

如何将这三个字体文件应用到 textview?

4

4 回答 4

1

此链接将帮助您了解如何自定义 android 字体:http: //mobile.tutsplus.com/tutorials/android/customize-android-fonts/

其中涉及如何将这些字体文件应用于文本视图,您需要先将它们集成到您的项目中:

Typeface tf = Typeface.createFromAsset(this.getAssets(),
        "fonts/xxx.TTF");
txt1.setTypeface(tf);

ttf文件应该放在--> assets/fonts/xxx.TTF

所有需要的细节都在段落中:“使用自定义字体”

于 2013-01-28T13:30:18.810 回答
1

对于 API 16+,现在最好的方法是定义一个字体资源文件,如果你使用 v26 以上的支持库或新的 AndroidX 库,基本上你在字体文件夹中添加你的普通和斜体 ttf 字体文件并创建一个字体资源 xml基本上让它看起来像

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:app="http://schemas.android.com/apk/res-auto">
<font
    app:fontStyle="normal"
    app:fontWeight="400"
    app:font="@font/custom_regular_font" />
<font
    app:fontStyle="italic"
    app:fontWeight="400"
    app:font="@font/custom_italic_font" />
<font
    app:fontStyle="normal"
    app:fontWeight="700"
    app:font="@font/custom_bold_font" />
</font-family>

最后一个是粗体字体,假设 custom_font_family.xml 将这个 xml 应用到你的 textview 为 android:fontFamily="@font/custom_font_family",现在你使用 fromHtml 设置的任何 html 文本以及三种跨度类型中的任何一种都将使用正确的字体,在需要时,这甚至可以让您拥有一个自定义字体系列,混合完全不同的字体,而不必完全来自同一个系列。

于 2019-02-28T19:22:30.603 回答
0

我想您想对代码进行快速重构以合并资产。

我会扩展 TextView 并尝试解析 HTML 并在 onDraw 应用正确的字体。

覆盖setText并解析为字符和应使用的正确字体创建映射的参数。

然后,覆盖onDraw并在绘制之前,super.getPaint()根据您在上一步中创建的地图更改字体。

代码应该看起来像如何在 TextView 的扩展类中正确绘制文本的onDraw方法中呈现的代码?,但是您将设置先前确定的字体而不是应用.super.getTypeface()

希望对你有帮助

于 2013-02-04T13:02:04.397 回答
0

您是否尝试将所有字体一一应用到相同的 textView 文本。我认为您可以将更多效果应用于相同的 TextView。

米洛斯的代码是正确的。另外,我已经提出了自己的解释。您可以将字体添加到资产文件夹a 中,然后您可以将该字体一一应用到 textView。

不确定,但可能对您有用。

我的代码:

Typeface font1 = Typeface.createFromAsset(getAssets(), "YOUR_FONT1.ttf");
Typeface font2 = Typeface.createFromAsset(getAssets(), "YOUR_FONT2.ttf");
Typeface font3 = Typeface.createFromAsset(getAssets(), "YOUR_FONT3.ttf");

chips_text.setTypeface(font1);
chips_text.setTypeface(font2);
chips_text.setTypeface(font3);

随意评论和查询。

于 2013-02-04T13:03:56.253 回答