如何在工具栏android中的标题上设置自定义字体

anupam x:

我正在这样做:

toolbar = (Toolbar) findViewById(com.sports.unity.R.id.tool_bar);
setSupportActionBar(toolbar);
setTitle("hello");

我想为标题“ hello”中的文本设置自定义字体。怎么做?

gmetax:

Update 2018(kotlin版本)

fun Toolbar.changeToolbarFont(){
    for (i in 0 until childCount) {
        val view = getChildAt(i)
        if (view is TextView && view.text == title) {
            view.typeface = Typeface.createFromAsset(view.context.assets, "fonts/customFont")
            break
        }
    }
}

像那样使用 toolBar.changeToolbarFont()

旧帖子

要在工具栏中使用自定义标题,您所要做的就是记住,工具栏只是一个精美的ViewGroup,因此您可以像这样添加自定义标题:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar_top"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="@color/action_bar_bkgnd"
    app:theme="@style/ToolBarTheme" >


     <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Toolbar Title"
        android:layout_gravity="center"
        android:id="@+id/toolbar_title" />


    </android.support.v7.widget.Toolbar>

这意味着您可以根据需要设置TextView的样式,因为它只是常规的TextView。因此,在您的活动中,您可以像这样访问标题:

Toolbar toolbarTop = (Toolbar) findViewById(R.id.toolbar_top);
TextView mTitle = (TextView) toolbarTop.findViewById(R.id.toolbar_title);

然后:

Typeface khandBold = Typeface.createFromAsset(BalrogApplication.getApplication().getAssets(), "fonts/Khand-bold.ttf");

mTitle.setTypeface(khandBold);

动态更新版本

public static void changeToolbarFont(Toolbar toolbar, Activity context) {
    for (int i = 0; i < toolbar.getChildCount(); i++) {
        View view = toolbar.getChildAt(i);
        if (view instanceof TextView) {
            TextView tv = (TextView) view;
            if (tv.getText().equals(toolbar.getTitle())) {
                applyFont(tv, context);
                break;
            }
        }
    }
}

public static void applyFont(TextView tv, Activity context) {
    tv.setTypeface(Typeface.createFromAsset(context.getAssets(), "fonts/customFont"));
}

像那样使用

changeToolbarFont(findViewById(R.id.app_bar), this);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android-如何在清单文件中为自定义工具栏设置标题?标签属性不起作用

在标签标题上设置Android自定义字体

Android工具栏中心标题和自定义字体

android工具栏上的自定义字体

如何在Android中创建自定义Spinner工具栏下拉菜单

如何在stimulsoft工具中向工具栏添加自定义图标

Android工具栏中的自定义图标

如何在页面标记中定义自定义ckeditor工具栏

如何在工具栏中设置标题?

如何在Android的自定义标题栏中添加菜单和设置选项?

如何在primereact中自定义工具栏?

如何在自定义的tinymce下拉菜单中添加工具栏按钮?

如何在Eclipse中自定义工具栏?

如何在 Xamarin Forms 中刷新自定义工具栏

如何在自定义创建的工具栏中更改菜单的颜色?

如何在OS X中创建自定义工具栏?

Android如何在画布中设置自定义字体?

如何在java中将工具栏标题设置为在android中居中

如何使用协调器布局和自定义工具栏更改android标题颜色

如何在ActionBar标题中设置自定义字体?

LaunchScreen.xib工具栏中的UIBarButtonItem的自定义系统字体

Android自定义工具栏菜单项标题颜色和样式

Searchview与工具栏中的自定义标题重叠。怎么预防?

自定义工具栏中的居中标题

如何更改工具栏标题的字体?

Android Lollipop工具栏与自定义视图

自定义工具栏android

Android自定义工具栏文本按钮

Android自定义材料设计工具栏