我正在尝试在TextView
. TextView
文本设置为textView1.setText(Html.fromHtml(htmlText));
html 包含粗体和斜体跨度
现在。我购买了自定义字体。该字体带有 3 个不同的文件 (ttf)。一个用于常规,一个粗体和斜体。
如何将这三个字体文件应用到 textview?
我正在尝试在TextView
. TextView
文本设置为textView1.setText(Html.fromHtml(htmlText));
html 包含粗体和斜体跨度
现在。我购买了自定义字体。该字体带有 3 个不同的文件 (ttf)。一个用于常规,一个粗体和斜体。
如何将这三个字体文件应用到 textview?
此链接将帮助您了解如何自定义 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
所有需要的细节都在段落中:“使用自定义字体”
对于 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 文本以及三种跨度类型中的任何一种都将使用正确的字体,在需要时,这甚至可以让您拥有一个自定义字体系列,混合完全不同的字体,而不必完全来自同一个系列。
我想您想对代码进行快速重构以合并资产。
我会扩展 TextView 并尝试解析 HTML 并在 onDraw 应用正确的字体。
覆盖setText
并解析为字符和应使用的正确字体创建映射的参数。
然后,覆盖onDraw
并在绘制之前,super.getPaint()
根据您在上一步中创建的地图更改字体。
代码应该看起来像如何在 TextView 的扩展类中正确绘制文本的onDraw
方法中呈现的代码?,但是您将设置先前确定的字体而不是应用.super.getTypeface()
希望对你有帮助
您是否尝试将所有字体一一应用到相同的 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);
随意评论和查询。