2010年5月3日月曜日

Android タイトルバーをカスタマイズ

アプリの上部に表示されるタイトルバー(Title Bar) の色とか
をカスタマイズするには、自分でカスタムテーマを作って、
AndroidManifest.xml で theme="MyCustomTheme" とか
指定します。

んで、

タイトルバーに関係あるカスタマイズはこんな感じ
でします。

・theme.xml とか style.xml とか

  1. <style name="MyCustomTheme" parent="android:style/Theme">  
  2.   <!-- Window attributes -->  
  3.   <item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item>  
  4.   <item name="android:windowTitleStyle">@style/WindowTitle</item>  
  5.   <item name="android:windowTitleSize">25dip</item>  
  6. </style>  
  7.   
  8. <style name="WindowTitleBackground">  
  9.   <item name="android:background">@drawable/title_bar</item>  
  10. </style>  
  11.       
  12. <style name="WindowTitle">  
  13.   <item name="android:singleLine">true</item>  
  14.   <item name="android:textAppearance">@android:style/TextAppearance.WindowTitle</item>  
  15.   <item name="android:shadowColor">#BB000000</item>  
  16.   <item name="android:shadowRadius">2.75</item>  
  17. </style>  


上記だと、タイトルバーの背景画像は title_bar.png
文字の大きさとかは、android で定義されている TextAppearance.WindowTitle
というスタイルを指定しているが、もちろん自分で設定した
スタイルを指定できる。

ちなみに、TextAppearance.WindowTitle の中身はこうなってる
  1. <style name="TextAppearance.WindowTitle">  
  2.     <item name="android:textColor">#fff</item>  
  3.     <item name="android:textSize">14sp</item>  
  4.     <item name="android:textStyle">bold</item>  
  5. </style>  


shadowColor, shadowRadius は影の色は半径

windowTitleSize でタイトルバーの幅を指定します。

2 件のコメント:

  1. テーマをスタイルで定義するさいに、タイトルバーをレイアウトに指定することは可能でしょう?

    返信削除
  2. レイアウトに、というのはいわゆる Activity の setContentView() で指定するレイアウトの中に、ということでしょうか?
    だとしたら、スタイルではタイトルバーを表示しない指定をして、自分で setContentView() で指定するレイアウトにタイトルバーっぽい View を入れるしかないです。

    返信削除