【问题标题】:Xamarin.Android - android:fontFamily doesn't workXamarin.Android - android:fontFamily 不起作用
【发布时间】:2018-05-31 19:21:33
【问题描述】:

我需要使用 android:fontFamily 更改 textView 字体。 问题是它给了我错误,我不知道为什么

我的代码:

  <TextView
                android:text="Arial font"
                android:textSize="8pt"
                android:fontFamily="@font/arial"
                android:layout_marginTop="4pt"/>

我几乎尝试了一切:在 Assets 文件夹中添加 Arial.ttf,在 Assets 中创建字体文件夹,尝试更改属性,尝试在 android:fontFamily 中使用“arial.ttf”而不是“arial”,但没有任何效果.

【问题讨论】:

    标签: android xamarin fonts xamarin.android


    【解决方案1】:

    仅支持 API-26 及更高版本:

    • Resources/font目录中添加你的字体文件

    • API-26+ 只支持使用android:fontFamily 即可:

      android:fontFamily="@font/tastysushi"

    但是...对于 API 16 到 28+,您需要设置/使用 Android 支持库

    来自 API-16+ 的支持

    • 添加Xamarin.Android.Support.Compat 包(v26 或更高版本)

    • 如果您在 AXML 布局中使用 fontFamily,请添加 Xamarin.Android.Support.v7.AppCompat 包 (v26+)(否则您可以通过编程方式分配字体系列并使用 Activity 子类)

    • 您的活动必须AppCompatActivity 的子类,以便基于布局/AXML 的app:fontFamily 属性起作用

    • Resources/font目录下添加字体文件

       |-Resources
       |  |-font
       |  |  |-tastysushi.ttf
      
    • 可选但方便,在Resources/font 目录中创建一个字体系列xml 文件(androidapp 命名空间都必须定义)

      <!-- Resource/font/sushi.xml -->    
      <?xml version="1.0" encoding="UTF-8" ?>
      <font-family 
      xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">
      <font
          android:fontStyle="normal"
          android:fontWeight="400"
          android:font="@font/tastysushi"
      
          app:fontStyle="normal"
          app:fontWeight="400"
          app:font="@font/tastysushi"
      />
      

      注意:您还可以将粗体和斜体 font 元素添加到字体系列中...并为每个字体分配来自同一字体系列的不同字体文件...

    • 在布局文件的顶部元素中添加 app: 命名空间:

      xmlns:app="http://schemas.android.com/apk/res-auto"

    • 现在必须使用fontFamily 属性才能使用app: 命名空间

      app:fontFamily="@font/sushi"

    注意:@font/ 可以引用实际字体文件或基于 xml 的字体系列文件

    注意:您还可以在样式中嵌入字体,这样您就不必使用字体系列填充每个 AXML 元素...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多