如何更改动作栏/标题栏字体?

时间:2017-04-01 11:58:15

标签: android fonts android-actionbar

不确定这是否被称为操作栏或标题栏,但我需要将字体更改为我在资源文件夹中的字体。我该怎么做?

enter image description here

7 个答案:

答案 0 :(得分:2)

您可以制作自定义工具栏。下面是代码快照

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

    <TextView
        android:id="@+id/toolbar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:textColor="@color/white"
        android:textSize="17sp"
        android:textStyle="bold" />
</android.support.v7.widget.Toolbar>

然后您可以访问java类(Activity或Fragment)中的toolbar_title并设置自定义字体样式。

答案 1 :(得分:1)

正如其他一些用户所建议的,您可以使用工具栏,但如果您不想或必须继续使用操作栏,那么您可以像这样定义操作栏的样式:

<style name="baseStyle" parent="@style/Theme.MaterialComponents.Light.Bridge">
    <item name="actionBarStyle">@style/myActionBarStyle</item>
  ...
</style>

并在 myActionBarStyle 内定义字体:

  <style name="myActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
    <item name="fontFamily">@font/customFont</item>
    ...
  </style>

这只会影响操作栏中的字体,而不会影响整个应用程序

答案 2 :(得分:0)

您可以像这样访问工具栏的文本视图:

TextView mTitle = (TextView) toolbar.findViewById(R.id.toolbar_title);

然后分配所需的字体:

mTitle.setTypeface(someTypeface);

答案 3 :(得分:0)

在java代码中

 ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#2B1C27")));

LayoutInflater inflater = LayoutInflater.from(this);
View v = inflater.inflate(R.layout.titleview_2, null);

TextView actionbar_title = (TextView)v.findViewById(R.id.actionbar_title);
actionbar_title.setTypeface(you can set your font here also.);

actionBar.setCustomView(v);
XML文件中的

      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_gravity="center"
     android:id="@+id/actionBar"
     android:paddingTop="7dp"
     android:orientation="horizontal"
     android:background="#9B66AB">

    <TextView
    android:id="@+id/actionbar_title"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal|center_vertical"
    android:gravity="center_horizontal|center_vertical"
    android:padding="8dp"
    android:text="@string/appTitle"
    android:textSize="20sp"
    android:textColor="#FFFFFF"
    android:layout_centerVertical="true"
   />

    </RelativeLayout>

它会起作用。

<强> EDITED

getSupportActionBar().setTitle((Html.fromHtml("<font face=\"Times New Roman\">" + getString(R.string.title) + "</font>")));

答案 4 :(得分:0)

首先转到styles.xml,然后添加

字体名称

在您的主题标签中...

答案 5 :(得分:-2)

您可以尝试以下方法: -

ActionBar actionBar = getSupportActionBar();
actionBar.setTitle(&#34; New Title&#34;);

答案 6 :(得分:-2)

“Android O引入了一项新功能,字体为XML”。您现在可以创建自定义工具栏并使用

android:fontFamily="@font/lobster"

XML标记。您需要将您的字体添加到recources / font文件夹。有关详细信息,请参阅https://developer.android.com/preview/features/working-with-fonts.html