使用Leanback中支持库中的字体

时间:2017-10-05 13:43:02

标签: android-support-library android-tv

从Android支持库26开始,可以在样式和小部件中使用fonts。然后,您必须使用AppCompatActivity并使用从Theme.AppCompat扩展的样式。

我想在Android TV中使用自定义字体(使用支持库),但我不能使用Theme.Leanback样式。

有没有办法在字体支持下使用Theme.Leanback样式?

1 个答案:

答案 0 :(得分:0)

我最终使用Calligraphy

的build.gradle:

implementation 'uk.co.chrisjenx:calligraphy:2.3.0'

assets/font/fancyfont.otf中的字体应用于`GuidedStepFragment活动:

LoginActivity.kt:

class LoginActivity : Activity() {

    override fun attachBaseContext(newBase: Context?) {
        super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase))
    }
}

styles.xml:

<style name="LoginActivityTheme" parent="@style/Theme.Leanback.GuidedStep">
    <item name="guidanceTitleStyle">@style/Login.TitleStyle</item>
</style>

<style name="Login.TitleStyle" parent="Widget.Leanback.GuidanceTitleStyle">
    <item name="fontPath">font/fancy_font.otf</item>
</style>

的AndroidManifest.xml:

    <activity android:name=".LoginActivity"
        android:theme="@style/LoginActivityTheme"/>