我正在做这件事:
toolbar = (Toolbar) findViewById(com.sports.unity.R.id.tool_bar);
setSupportActionBar(toolbar);
setTitle("hello");
我想为标题“hello”中的文本设置自定义字体。如何做到这一点?
只需下载您想要在标题中显示的字体,将其移动到res->font文件夹下,并在那里创建一个名为fontfamily的文件。
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/futura_book" />
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/your font file name" />
</font-family>
现在只需要在您的 XML 文件中添加 fontfamily="您下载的字体名称,如 a.ttf" 即可。
我刚把我的字体添加到我在res
文件夹中创建的字体文件夹中,与其他字体一起,然后我为该工具栏制作了自定义XML文件。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center">
<TextView
android:id="@+id/action_bar_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:textSize="30sp"
android:fontFamily="@font/yourfont"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"/></LinearLayout>
然后,我将这个添加到我的MainActivity
中
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setDisplayShowCustomEnabled(true);
getSupportActionBar().setCustomView(R.layout.your_xml_file);
OTF 和 TTF 都可以使用
最佳答案确实是最好的。如果你想要增加(调整字体大小)并改变颜色,那么可以按照下面这样更新你的样式:
<style name="NexaBoldToolbar">
<item name="android:fontFamily">@font/nexabold</item>
<item name="android:textSize">18sp</item>
<item name="android:textColor">@color/fullWhite</item>
</style>
我建议在工具栏中使用TextView,因为与使用标题属性相比,它会提供更好的自定义选项。
就像这里展示的一样:
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/materialToolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:minHeight="?attr/actionBarSize"
android:theme="?attr/actionBarTheme"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_wrapBehaviorInParent="included"
app:menu="@menu/top_app_bar">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/inter_bold"
android:text="Good day, Megha J Kamdar"/>
</com.google.android.material.appbar.MaterialToolbar>