4

我有一个字体,我想更改 android 中操作栏标题的字体。有没有办法像这样设置标题字体?

this.setTitle(myTitle.toUpperCase()); 
this.setTypefaceofTitle(tf);

这不是复制问题,此链接上的那些方法(如何在 ActionBar 标题中设置自定义字体?)不起作用。当我尝试它们时,eclipse给出了那个错误:java.lang.noSuchMethodError

4

5 回答 5

15

尝试这个,

    int actionBarTitle = Resources.getSystem().getIdentifier("action_bar_title", "id", "android");
TextView actionBarTitleView = (TextView) getWindow().findViewById(actionBarTitle);
Typeface robotoBoldCondensedItalic = Typeface.createFromAsset(getAssets(), "fonts/Roboto-BoldCondensedItalic.ttf");
if(actionBarTitleView != null){
    actionBarTitleView.setTypeface(robotoBoldCondensedItalic);
}

如果它的工具栏意味着尝试如下。

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


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


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

然后只需使用以下注释以编程方式添加任何样式。

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
TextView mTitle = (TextView) toolbar.findViewById(R.id.title);

或者

改变使用风格。需要一个信息点击这里

于 2014-01-31T12:49:13.793 回答
2

我从 headvk 那里找到了这个对我有帮助的答案。做一些调整我只需要这样做:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
...
TextView myTitle = (TextView) toolbar.getChildAt(0);
myTitle.setTypeface(font);

在我的应用程序上做一些测试,我发现标题 TextView 是工具栏的第一个子项,所以现在我有了它,我可以对其进行更改。

于 2016-01-01T20:12:19.823 回答
1

https://stackoverflow.com/a/8748802/1943671你可以在这个答案中这样做。

将自定义视图设置为链接中的操作栏后,只需为 TextView 指定字体:

Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/yourfont.ttf");
TextView tv = (TextView) findViewById(R.id.customTitle);
tv.setTypeface(tf);
于 2013-07-31T09:27:14.043 回答
0

您可以通过创建一个自定义视图并在此自定义视图中扩展该自定义视图来实现ActionBar.
这一点,该自定义视图将包含一个TextView您将获得引用的,然后能够设置字体。

在此处查看示例:如何在 ActionBar 标题中设置自定义字体?

于 2013-07-31T09:25:44.720 回答
0

不支持。但您可以为操作栏创建自定义视图。如何在 ActionBar 标题中设置自定义字体?

@Override
public boolean onCreateOptionsMenu(Menu menu) {


    //getMenuInflater().inflate(R.menu.activity_main, menu);
    this.getActionBar().setDisplayShowCustomEnabled(true);
    this.getActionBar().setDisplayShowTitleEnabled(false);
    Typeface tf = Typeface.createFromAsset(getAssets(),
            "fonts/architectsdaughter.ttf");


    LayoutInflater inflator = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View v = inflator.inflate(R.layout.xml_master_footer, null);


    this.getActionBar().setCustomView(v);

    ((TextView)v.findViewById(R.id.title)).setText(this.getTitle());
    ((TextView) v.findViewById(R.id.title)).setTypeface(tf);


    //assign the view to the actionbar

    return true;
}

在你的清单中

<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="16" />
于 2013-07-31T09:33:25.350 回答