使用 API 29 和可变字体(来自 google fonts 的 Inter v3.19,.ttf)
似乎无论我为
fontVariationSettings
设置什么值,TextView 都会忽略该设置。当放入像 'wght' 700
这样的 styles.xml 值时,会触发 Execution failed for task ':app:mergeDebugResources'.
的构建错误
应该如何在 Android 上使用可变字体?
首先确保您的字体支持权重轴,方法是在任何网站(如https://fontdrop.info/)中检查它。
在我的例子中,我必须使用 MaterialTextView 才能使其发挥作用。
<com.google.android.material.textview.MaterialTextView
android:id="@+id/header_text"
android:fontFamily="@font/font_variable"
app:fontVariationSettings="'wght' 700" />
您可以在 build() 之前setFontVariationSettings。
// ...
builder.setFontVariationSettings("'wght' 700")
builder.build()
或者尝试Typeface.Builder。这对我来说非常有用。
val builder = Typeface.Builder(/* ... */)
builder.setFontVariationSettings("'wght' 700")
textView.typeface = builder.build()