gpt4 book ai didi

android - 使用书法更改工具栏的字体

转载 作者:行者123 更新时间:2023-11-29 19:28:35 26 4
gpt4 key购买 nike

我正在使用 Calligraphy lib for Android更改我的应用程序中的字体。问题出在工具栏上。我不知道如何更改字体。

这是我的工具栏:

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:titleTextAppearance="@style/Toolbar.TitleText"
android:background="@drawable/background_repeat"
app:popupTheme="@style/AppTheme.PopupOverlay" />

这是我的 style.xml 中的 TextAppearance:

<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="fontPath">fonts/Raleway-ExtraBoldItalic.ttf</item>
<item name="android:textSize">50sp</item>
</style>

这是行不通的。我可以更改文本的大小(在此示例中,50sp 有效)。但无法更改字体。

最佳答案

问题是 Toolbar 在其内部以编程方式为标题和副标题创建了 TextView。这意味着它不使用 Calligraphy 包装的 LayoutInflater。相反,它使用系统字体,具体取决于 textAppearence 属性中的 fontFamily 和 fontStyle。

但是 Calligraphy 会监听 GlobalLayout 的变化并尝试从主题加载样式。

所以我做了什么:

添加 Activity 主题并自定义ActionBarStyle:

<style name="ActivityTheme" parent="AppTheme.Base">
<item name="android:actionBarStyle">@style/ActionBarStyle</item>
</style>

<style name="ActionBarStyle" parent="Widget.AppCompat.Light.ActionBar.Solid">
<item name="android:titleTextStyle">@style/ToolbarTitleTextAppearance</item>
</style>

<style name="ToolbarTitleTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textSize">20sp</item>
<item name="fontPath">fonts/Roboto-Medium.ttf</item>
</style>

关于android - 使用书法更改工具栏的字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40745114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com