【问题标题】:fontFamily Unknown resource type Android StudiofontFamily 未知资源类型 Android Studio
【发布时间】:2021-11-06 21:00:40
【问题描述】:

我使用 Android Studio 2020.3.1 补丁 3

我如何解决这个错误未知的资源类型字体

文本视图代码

<TextView
            android:id="@+id/descTextView"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="16dp"
            android:layout_marginTop="8dp"
            android:layout_marginEnd="16dp"
            android:fontFamily="@fonts/zaxo"
            android:gravity="start"
            android:textAlignment="viewStart"
            android:textSize="@dimen/font_body_size"
            app:font='@{"normal"}'
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/titleTextView"
            tools:text="Description"/>

我还创建了文件夹字体参见图片see picture

see error

我还在 style.xml 中添加了这一行

    <item name="android:fontFamily">@fonts/zaxo</item>

我还添加了我的字体到 Utils.java

  public static Typeface getTypeFace(Context context, Fonts fonts) {

       if (currentTypeface == fonts) {
           if (fromAsset == null) {
               if (fonts == Fonts.NOTO_SANS) {
                   fromAsset = Typeface.createFromAsset(context.getAssets(), "fonts/NotoSans-Regular.ttf");
               } else if (fonts == Fonts.ROBOTO) {
//                    fromAsset = Typeface.createFromAsset(context.getAssets(), "fonts/Roboto-Regular.ttf");
                   fromAsset = Typeface.createFromAsset(context.getAssets(), "fonts/Product-Sans-Regular.ttf");
               } else if (fonts == Fonts.ROBOTO_MEDIUM) {
                   fromAsset = Typeface.createFromAsset(context.getAssets(), "fonts/Product-Sans-Bold.ttf");
               } else if (fonts == Fonts.ROBOTO_LIGHT) {
                   fromAsset = Typeface.createFromAsset(context.getAssets(), "fonts/Product-Sans-Regular.ttf");
               } else if (fonts == Fonts.MM_FONT) {
                   fromAsset = Typeface.createFromAsset(context.getAssets(), "fonts/mymm.ttf");
               }
               else if (fonts == Fonts.KURDI) {
                   fromAsset = Typeface.createFromAsset(context.getAssets(), "fonts/zaxo.ttf");
               }

           }
       } else {
           if (fonts == Fonts.NOTO_SANS) {
               fromAsset = Typeface.createFromAsset(context.getAssets(), "fonts/NotoSans-Regular.ttf");
           } else if (fonts == Fonts.ROBOTO) {
//                fromAsset = Typeface.createFromAsset(context.getAssets(), "fonts/Roboto-Regular.ttf");
               fromAsset = Typeface.createFromAsset(context.getAssets(), "fonts/Product-Sans-Regular.ttf");
           } else if (fonts == Fonts.ROBOTO_MEDIUM) {
               fromAsset = Typeface.createFromAsset(context.getAssets(), "fonts/Product-Sans-Bold.ttf");
           } else if (fonts == Fonts.ROBOTO_LIGHT) {
               fromAsset = Typeface.createFromAsset(context.getAssets(), "fonts/Product-Sans-Regular.ttf");
           } else if (fonts == Fonts.MM_FONT) {
               fromAsset = Typeface.createFromAsset(context.getAssets(), "fonts/mymm.ttf");
           } else if (fonts == Fonts.KURDI) {
               fromAsset = Typeface.createFromAsset(context.getAssets(), "fonts/zaxo.ttf");
           } else {
               fromAsset = Typeface.createFromAsset(context.getAssets(), "fonts/Product-Sans-Regular.ttf");
           }


           //fromAsset = Typeface.createFromAsset(activity.getAssets(), "fonts/Roboto-Italic.ttf");
           currentTypeface = fonts;
       }
       return fromAsset;
   }

   public static SpannableString getSpannableString(Context context, String str, Fonts font) {
       spannableString = new SpannableString(str);
       spannableString.setSpan(new PSTypefaceSpan("", Utils.getTypeFace(context, font)), 0, spannableString.length(),
               Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
       return spannableString;
   }

当我点击这个图标时,我没有找到我的字体 see picture

谢谢

【问题讨论】:

  • 您是否尝试过使缓存无效并重新启动,然后再进行清理构建? Android Studio 通常会显示这些问题,因为 IDE 中有缓存内容

标签: android android-studio android-layout fonts


【解决方案1】:

您需要将 'font' 文件夹保留在 'res' 文件夹下,而且它是 'font' 而不是 'fonts'

check this link关于如何添加字体

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 2015-05-28
    相关资源
    最近更新 更多