アプリケーションにテーマを適用する

UIに対して、特にテーマを設定しなかった場合、Androidはandroid.R.style.Themeにより定義されているデフォルトテーマを使用します。テーマ変更を行いたい場合は多いでしょう。このような場合には他のシステムテーマ(Theme.Darkなど)を利用したり、あるいはStyle and Theme Resourcesにて解説されているように、自分自身でテーマを作成することが出来ます。

XMLへのテーマ設定は、AndroidManifest.xmlファイル内に使いたいテーマを指定するための、theme属性を追加することで簡単に実現出来ます。<application>タグに対する定義(以下の例にあるような)では全アクティビティに対するテーマを、<activity>タグに対する定義では特定のアクティビティのみに対するテーマを指定することが出来ます。

<!-- AndroidManifest.xml--> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.google.android.home">
    <application android:theme="@android:style/Theme.Dark" >
        <activity class=".Home"
        ...
        </activity>
    </application>

</manifest>

また、必要であればテーマをプログラムから指定することも可能です。この場合は、全ユーザインターフェイス要素に対して正しいテーマが適用されるように、ビュー作成の前にテーマ設定を行ってください。通常はこのアプローチは取らないほうが得策です。特に、アプリケーションのメインアクティビティにおいてはここで設定したテーマがシステム側でアプリケーションが開始する前にアクティビティ表示を行うアニメーションにおいて有効とならない可能性があるためです。[※1]

 protected void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    ...
    setTheme(android.R.style.Theme_Dark);
    setContentView(R.layout.linear_layout_3);
}