【发布时间】:2018-09-22 13:18:26
【问题描述】:
我正在尝试按照site 上的“XML 字体”教程添加自定义字体。我严格按照教程进行操作,并检查了很多次以找到我错过的东西,但我就是看不到它。我添加的字体是一个TTF文件。
在设计器中,我可以选择我的字体系列,TextView 中的文本会更改为我添加的自定义字体。但是,当我在设备上运行应用程序时,文本默认为常规字体。 Android Studio 中包含的字体不会发生这种情况。
附加问题:当我尝试另一种自定义字体时,TextView 中的文本更改为自定义字体,但文本本身(内容)也更改为一些乱码。这是表示字体不好还是其他原因?
sv_regular.xml
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/sv_font_regular" />
</font-family>
文本视图
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/sv_regular"
android:text="@string/app_name" />
【问题讨论】:
-
您能否发布一些您尝试过的代码,这样我们不会猜测而是实际解决具体问题?顺便说一句,作为一名 android 工程师,我不认为该教程是在 android 应用程序中处理自定义字体的最佳方法。
-
代码实际上是从教程中复制粘贴的,除了字体名称,这就是我没有发布它的原因。你会推荐什么来实现自定义字体?
-
对于第二个问题,字体可能不支持内容。
-
另外,你试过换字体吗?
-
我会建议类似于 Kishan Verna 建议的东西......基本上,我总是为这些“自定义字体”做的事情如下:1)制作
CustomTextView extends TextView2)制作@ 987654325@ 自定义属性 3) 将自定义字体放在assets/文件夹中 4) 创建一个与自定义字体一起使用的FontManager类 5) 使CustomTextView构造函数在其构造函数中应用自定义字体。 6) 在所有 XML 中使用CustomTextView而不是TextView