<   2011年 08月 ( 1 )   > この月の画像一覧

タイトルバーの背景色を変更したくなった。
xml を使用して変更する例は多いのだけど、
xml を使わないでやってみたかったので、
ゴリゴリしてみた。

初心者なものでお作法がわからない。
すごくイケナイコトをしている気もする…。
お作法を方法を教えていただけると喜びます。
ちょっと調べてみた範囲ではわかりませんでしたの。

タイトルバーを消すとか、
タイトルバーにアイコンを載せるとか、
そのあたりは用意されている。
なのに、なぜか背景をいじろうと思うと、
途端に面倒になるのね。

参考にしたページ
Android Developers | Google グループ
How to set logo in the title bar dynamically

Android 2.3.3 で動作確認しました。

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  // タイトルにしたい文字列
  TextView title = new TextView(this);
  title.setText("new my title");
  // (略)
  // タイトルバーをいじる場合、以下の行は必須
  // setContentView よりも前に入れる!
  requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
  try {
    // こんな風にタイトルバーのリソースIDを取っていいのかしら…
    int titleId
      = (Integer) Class.forName("com.android.internal.R$id")
       .getField("title_container")
       .get(null);
    // ViewGroup にキャストするのがミソだと思う
    ViewGroup viewGroup = (ViewGroup) this.findViewById(titleId);
    // 背景をステキな青に変えてみる
    viewGroup.setBackgroundColor(Color.parseColor("#13386c"));
    // タイトル文字列
    viewGroup.addView(title);
  } catch (Exception e) {
    // (略)
  }
  // (略)
}


いやープログラミングって楽しいわー。
[PR]
by xiaoxia | 2011-08-23 18:12 | プログラム言語 | Comments(0)

ダメ女プログラマ&主婦&腐女子&バイオリン弾き


by 小霞