1. ホーム
  2. android

[解決済み] タイトルの背景色を設定する

2022-10-18 14:13:57

質問

アンドロイドアプリで、標準/基本のタイトルバーの色を変えたいのですが、どうすればいいですか?

文字色を変えるには setTitleColor(int color) で、バーの背景色を変更する方法はありますか?

どのように解決するのですか?

これは スレッド は、xml ファイルで独自のタイトルバーを作成し、それをアクティビティで使用する方法を説明します。

編集

上のリンクの内容を簡単にまとめると、こうなります。 だけ で、テキストの色とタイトルバーの背景を設定しています。サイズ変更もボタンもない、最もシンプルなサンプルです。

res/layout/mytitle.xml - これは、タイトルバーを表すビューです。

<?xml version="1.0" encoding="utf-8"?>
<TextView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/myTitle"
  android:text="This is my new title"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:textColor="@color/titletextcolor"
   />

res/values/themes.xml - アンドロイドのデフォルトのテーマを維持したいので、タイトル背景の色を変更するだけでよいのです。そこで、デフォルトのテーマを継承したテーマを作成し、背景のスタイルを独自のスタイルに設定します。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="customTheme" parent="android:Theme"> 
        <item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item>   
    </style> 
</resources>

res/values/styles.xml - ここで、タイトルの背景に好きな色を使うようにテーマを設定します。

<?xml version="1.0" encoding="utf-8"?>
<resources> 
   <style name="WindowTitleBackground">     
        <item name="android:background">@color/titlebackgroundcolor</item>                   
    </style>
</resources>

res/values/colors.xml - ここに好きな色を設定します

<?xml version="1.0" encoding="utf-8"?>
<resources>   
    <color name="titlebackgroundcolor">#3232CD</color>
    <color name="titletextcolor">#FFFF00</color>
</resources>

の中に AndroidMANIFEST.xml で、アプリケーション(アプリケーション全体)またはアクティビティ(このアクティビティのみ)タグのどちらかでテーマ属性を設定します。

<activity android:name=".CustomTitleBar" android:theme="@style/customTheme" ...

Activityから(CustomTitleBarと呼ばれる):

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.main);
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.mytitle);

}