Theme

Posted by muchag | Android |
初回投稿:2011-04-06 (水) 22:50:51 | 最終更新:2011-04-06 (水) 23:15:58

Style にて、AndroidCSS を持ち込むことに成功したが
あれは、各 View 毎に設定するものであった。

Theme は、これを Activity あるいは Application 単位で設定するもので
定義の手法は変わらない。

Android Developers:Applying Styles and Themes

というニュアンスの記事が多いのだが
これだと納得できないことがある。

もし各 View 毎の設定であれば
スタイルをいくつも定義して、必要な場所で設定できるが
Activity あるいは Application 単位で設定するとなると
設定するときに名前を1つしか書けないので
様々な種類の View に対応できない気がする・・・。

まぁ、やっていく内に意味もわかってくるだろう。

Activity あるいは Application 単位で設定するには、
AndroidManifest.xml に登録する必要がある。
 

Application
  1. <application android:theme="@style/CustomTheme">

 

Activity
  1. <activity android:theme="@android:style/Theme.Dialog">

 

設定 or 切り替え スクリプト編

Application 単位の手法は見つけられなかったが
Activity 単位で Theme を設定 or 切り替えする手法。

  1. @Override
  2. public void onCreate(Bundle savedInstanceState) {
  3.     super.onCreate(savedInstanceState);
  4.                            
  5.     setTheme(android.R.style.Theme_Black);
  6.     setContentView(R.layout.main);
  7. }

当該アクティビティの onCreate メソッド内で setTheme メソッドにて設定。
setTheme メソッドは、setContentView メソッドより前に実行すること。
Android Developers:ContextThemeWrapper setTheme
(Activity は、ContextThemeWrapper のサブクラス)
 

注意点

5行目のリソースへの参照を見る限り
styles.xml 内では Theme.Black としたネーミングを Theme_Black とする必要があるみたい。

Posted by muchag | Android |
初回投稿:2011-04-06 (水) 22:50:51 | 最終更新:2011-04-06 (水) 23:15:58

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment