使用 Android 5 或更高版本的个性化字体 - XML

Posted

技术标签:

【中文标题】使用 Android 5 或更高版本的个性化字体 - XML【英文标题】:Personalized font using Android 5 or higher - XML 【发布时间】:2021-07-10 17:59:13 【问题描述】:

我正在关注这个tutorial 来更改Xamarin.android 中应用程序的字体,它只是将.ttf 文件添加到项目中,然后在您想要在其中使用它的地方引用TextView / EditText XML,像这样:

android:fontFamily="@font/sourcerfont"

我遇到的问题是它只适用于虚拟设备,而不适用于物理设备。

我重新阅读了文档(教程),发现这部分引起了我的注意,我的印象是错误可能存在,因为我的物理设备有API 23 - Android 6.0.1;而虚拟的有Android 9.0

Android 4.1 之前的设备也支持此功能,方法是使用 支持库 26 或更多。

你能告诉我我做错了什么吗?

我认为您不能只在版本早于 8 的 Android 应用上使用自定义字体。

在所有设备上对我都有效的唯一方法是这样,但对于大型应用程序来说非常乏味:

TextView Lbl = FindViewById <TextView> (Resource.Id.Lbl34);
            tf = Typeface.CreateFromAsset (Android.App.Application.Context.Assets, "quicks.ttf");
            Lbl.SetTypeface (tf, TypefaceStyle.Normal);

【问题讨论】:

【参考方案1】:

我重新阅读了文档(教程),发现这部分引起了我的注意,我的印象是错误可能存在,因为我的物理设备具有 API 23 - Android 6.0.1;而虚拟的有Android 9.0

我下载Karantina字体系列,然后在Resources文件夹下创建一个名为font的文件夹。把字体文件放到里面,build action设置为AndroidResource,看如下截图:

我使用这个自定义字体:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_ android:orientation="vertical">
<TextView
   android:text="My text content"
   android:layout_
   android:layout_
 android:fontFamily="@font/karantinaregular" />

<TextView
    android:layout_
    android:layout_
    android:text="karantina Bold" 
    android:fontFamily="@font/karantinabold"/>
 <TextView
    android:layout_
    android:layout_
    android:text="karantina Light" 
    android:fontFamily="@font/karantinalight"/>

我在 Android 虚拟 8.1(API27)、Android 物理设备 8.1(API27) 和 Android 物理设备 6.0(API23) 上测试我的代码,一切正常,没有问题。

【讨论】:

谢谢。我做了所有这些,但仍然没有在我的 Android 6 设备上显示。刚刚重新检查了rn。您在该特殊设备中复制的任何特殊细节?确定是 Android 6 设备? @Kenny.Ali Android 6 设备没有特殊设置,您可以尝试在其他物理设备上构建吗?

以上是关于使用 Android 5 或更高版本的个性化字体 - XML的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 模拟器中推送通知(5.1.1 或更高版本)

此版本的 Android Studio 无法打开此项目,请使用 Android Studio 4.0 或更高版本重试

字体平滑技术?文本阴影在 Chrome 14.0.833.0 或更高版本中呈现不同

在 Android 4.0 或更高版本中禁用主页按钮 [重复]

Maven编译项目时报错:不再支持源选项 5。请使用 6 或更高版本。 不再支持目标选项 1.5。请使用 1.6 或更高版本。

Android Studio - 使用 Junit 4.12 “!!!预计 JUnit 版本 3.8 或更高版本:”