Actionbar标题字体在android中没有变化

时间:2015-07-02 05:55:39

标签: android android-actionbar android-theme android-styles

我想将自定义字体更改为我的操作栏标题,已经完成了几个已接受的答案,但没有运气,我尝试过如下,但我的自定义字体不适用于我的操作栏标题,请帮我摆脱这个,我的代码如下:

的java

Typeface font = Typeface.createFromAsset(getActivity().getAssets(),
                "neuropolx.ttf");
        SpannableString s = new SpannableString(
                "                     KOLAY RANDEVU");
        s.setSpan(new CustomTypefaceSpan("", font), 0, 4,
                Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
        getActivity().getActionBar().setTitle(s);

4 个答案:

答案 0 :(得分:1)

您可以使用此代码解决此问题

this.getActionBar().setDisplayShowCustomEnabled(true);
this.getActionBar().setDisplayShowTitleEnabled(false);

答案 1 :(得分:0)

不完全支持更改操作栏标题字体,但您可以使用操作栏的自定义视图。使用自定义视图并禁用本机标题。它将显示图标和操作项之间。您可以从单个活动继承所有活动,该活动的代码在onCreate:

this.getActionBar().setDisplayShowCustomEnabled(true);
this.getActionBar().setDisplayShowTitleEnabled(false);

LayoutInflater inflator = LayoutInflater.from(this);
View v = inflator.inflate(R.layout.customTitleView, null);

//you can customise anything about the text here.
//Using a custom TextView with a custom font in layout xml so all you need to do is set title
((TextView)v.findViewById(R.id.title)).setText(this.getTitle());

//assign the view to the actionbar
this.getActionBar().setCustomView(v);

你的布局xml(上面代码中的R.layout.customTitleView)如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent" >

<com.your.package.CustomTextView
        android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:textSize="20dp"
            android:maxLines="1"
            android:ellipsize="end"
            android:text="" />
</LinearLayout>

答案 2 :(得分:0)

您可以创建自己的自定义操作栏,然后更改标题字体。并且您可以将您的字体文件放在assets文件夹中并从中进行访问。试试这样:

tf= Typeface.createFromAsset(getAssets(), "FontType.TTF");

 actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#9B66AB")));

    LayoutInflater inflater = LayoutInflater.from(c);
    @SuppressLint("InflateParams")
    View v = inflater.inflate(R.layout.titleview_2, null);

    TextView actionbar_title = (TextView)v.findViewById(R.id.actionbar_title);
    actionbar_title.setTypeface(tf);

    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>

希望它有所帮助...

答案 3 :(得分:0)

使用

getActivity().getActionBar().setCustomView(myTextView);

在该视图中,您可以使用TextView为其设置您选择的字体

TextView myTextView = new TextView(context);        
      myTextView.setTypeface(font);