これを行うための Google が承認した方法はありませんが、このマイナーなハックは機能するはずです。
try {
final int titleId = Resources.getSystem().getIdentifier("action_bar_title", "id", "android");
TextView title = (TextView) getWindow().findViewById(titleId);
// check for null and manipulate the title as you see fit
} catch (Exception e) {
Log.e(TAG, "Failed to obtain action bar title reference");
}
ただし、もう少し Google が承認した方法は、カスタム レイアウトを ActionBar に設定することです。
アクション バーにカスタム ビューを使用できます (アイコンとアクション アイテムの間に表示されます)。カスタム ビューを使用していて、ネイティブ タイトルが無効になっています。私のすべてのアクティビティは、onCreate に次のコードを持つ単一のアクティビティから継承します。
this.getActionBar().setDisplayShowCustomEnabled(true);
this.getActionBar().setDisplayShowTitleEnabled(false);
LayoutInflater inflator = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.titleview, null);
//if you need to customize anything else about the text, do it here.
//I'm using a custom TextView with a custom font in my layout xml so all I 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.titleview) は次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent" >
<TextView
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="" />
</RelativeLayout>
android:textSize="20dp"
タイトルのサイズを変更します。