android fontFamily 缺少字形的回退字体
android fontFamily fallback font for missing glyphs
在 Android 上使用带有 Android 支持库的新自定义字体时,我在 Android 4.1 (API 16) 上遇到显示问题在 8.0 上正常 (API 26):
这里是activity_main.xml
内容,使用自定义字体AvenirNext Medium(保存在res/font/avenirnext_medium.ttf
):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/avenirnext_medium"
android:text="Hello world?"/> <!-- this is an unbreakable space -->
</LinearLayout>
我的目标是 SDK 26,同时支持低至 SDK 16。
如何去除 API 16 中的替换字符 '�'?
感谢@HermantParmar 的评论,看起来像牢不可破的空格之类的特殊字符必须通过 unicode 值出现 (\u00A0
)。所以我修改了 text
属性,它现在工作正常:
android:text="Hello\u00A0world?"/>
在 Android 上使用带有 Android 支持库的新自定义字体时,我在 Android 4.1 (API 16) 上遇到显示问题在 8.0 上正常 (API 26):
这里是activity_main.xml
内容,使用自定义字体AvenirNext Medium(保存在res/font/avenirnext_medium.ttf
):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/avenirnext_medium"
android:text="Hello world?"/> <!-- this is an unbreakable space -->
</LinearLayout>
我的目标是 SDK 26,同时支持低至 SDK 16。
如何去除 API 16 中的替换字符 '�'?
感谢@HermantParmar 的评论,看起来像牢不可破的空格之类的特殊字符必须通过 unicode 值出现 (\u00A0
)。所以我修改了 text
属性,它现在工作正常:
android:text="Hello\u00A0world?"/>