【发布时间】: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
我还在 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