How to change ActionBar title font when using AppCompat

后端 未结 3 790
时光取名叫无心
时光取名叫无心 2021-02-02 00:06

I would like to apply custom font to the title of my app which is displayed on the ActionBar. Previously I didn\'t use any support library and this solution:

int         


        
相关标签:
3条回答
  • 2021-02-02 00:16

    Use Toolbar instead of ActionBar.follow below steps to add toolbar: 1.change your app theme to Theme.AppCompat.Light.NoActionBar 2.Goto project structure from File menu,goto library dependencies,add design library and sync your project. 3.Goto your layout where you want to display ActionBar and write below code:

    <android.support.v7.widget.Toolbar
        android:id="@+id/mytoolbar"
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:background="@color/pccolor"
        android:title="Services"
        app:titleTextAppearance="@style/Toolbar.TitleText"
        android:elevation="4dp">
      <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>
    

    4.In the Activity,write as below:

     Toolbar mytoolbar=(Toolbar)findViewById(R.id.mytoolbar);
        setSupportActionBar(mytoolbar);
    

    To customize your title font:

    fontPath = "Fonts/Roboto-Light.ttf";
        Typeface tf = Typeface.createFromAsset(getActivity().getAssets(), fontPath);
    
    TextView tv_ins=(TextView)FindViewById(R.id.toolbar_title);
     tv_ins.setText("mytitle");
    tv_ins.setTypeface(tf);
    

    Try this out Hopes this helps you,if anything wrong please let me know.

    0 讨论(0)
  • 2021-02-02 00:18

    Assuming you are already successfully using the new toolbar of AppCompat v22+ and that you are importing android.support.v7.widget.Toolbar in your activity.

    So on your OnCreate you should already have

    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    

    at this point you are almost done:

    import java.lang.reflect.field;

    and add following lines:

    TextView yourTextView = null;
    try {
        Field f = toolbar.getClass().getDeclaredField("mTitleTextView");
        f.setAccessible(true);
        yourTextView = (TextView) f.get(toolbar);
        yourTextView.setTypeface(face);
    } catch (NoSuchFieldException e) {
    } catch (IllegalAccessException e) {
    }
    
    0 讨论(0)
  • 2021-02-02 00:29

    prepare Custom Layout ,put text view in action_bar_layout and then call actionbar.setcustomlayout()

    0 讨论(0)
提交回复
热议问题