xamarin.forms - 如何覆盖Android的系统字体?
问题描述
所以,简而言之,我尝试设置 Label.FontFamily 属性并没有生效。
我对移动应用程序有一个非常简单的要求。正在开发的应用程序的 Android 版本应始终以 Roboto 字体呈现文本,无论系统设置中的字体系列是什么。
这是不起作用的示例标记:
<Label VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand"
TextColor="White"
HorizontalTextAlignment="Center"
FontSize="46"
FontFamily="Roboto">Hello world!</Label>
我已将系统字体设置为一种看起来很奇怪的字体,名为 Travel,它预装在我的手机中。我设备上的所有内容都以该字体呈现,不幸的是,其中包括问候标签,其代码发布在此处。
我尝试了 Roboto.ttf 而不是简单的 Roboto。我尝试更改 MainTheme
<style name="MainTheme" parent ="Theme.AppCompat.Light.NoActionBar">
<item name="android:textAllCaps">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:fontFamily">Roboto</item>
<item name="android:windowFullscreen">true</item>
</style>
我在整个解决方案中寻找“字体”和“家庭”这两个词,不幸的是,没有任何相关的东西出现。
作为记录,我知道我最终将不得不使用一个成语,但我想首先让改变以一种快速而肮脏的方式工作。
如何从系统设置中覆盖该字体?
解决方案
您可以通过以下步骤覆盖 Android 的系统字体:
1、将字体文件复制到Assets文件夹下,在我的demo中,我曾经Roboto-Italic.ttf
讲清楚。
2、将label的fontfamily设置为你添加到assets的字体:
<Label.FontFamily>
<OnPlatform x:TypeArguments="x:String">
<On Platform="Android" Value="Roboto-Italic.ttf#Roboto-Italic.ttf" />
</OnPlatform>
</Label.FontFamily>
推荐阅读
- php - 在 xammp 中访问 Samrty 中的模板文件时出错
- javascript - 仅在长按或聚焦时在移动设备上显示键盘?角
- javascript - 无法解析从 express js 服务器到后端 java 端点的多部分 servlet 请求
- php - 如何在 Symfony 控制台中解释 HTML 标签?
- php - 在 php mysql 和 html 中选择多个给定选项的逻辑问题
- python - 启动 jupyter notebook 时出现 bash 错误 - 解释器错误:没有这样的文件或目录
- firebase - 如何使用 Firebase 在域中托管单个 JS 文件?
- javascript - 通过对象中的字符串数组过滤和对象数组
- r - 如何在 environment.yml 中安装 CRAN 包
- php - 如何在 AWS SNS 上设置发件人号码(使用 PHP v3 SDK)