web-dev-qa-db-ja.com

Androidのアクティビティにテーマを適用しますか?

テーマをアプリケーション全体に適用する方法は知っていますが、テーマを単一のアクティビティに適用するにはどこに行きますか?

71
Willy

Android:theme内に<activity>をマニフェストファイル内に含めることにより、任意のアクティビティにテーマを適用できます。

例えば:

  1. <activity Android:theme="@Android:style/Theme.Dialog">
  2. <activity Android:theme="@style/CustomTheme">

プログラムでテーマを設定する場合は、setTheme()メソッド内でsetContentView()およびsuper.onCreate()メソッドを呼び出す前に、onCreate()を使用します。

141
Paresh Mayani

Activity.Javaでプログラムで設定するには:

public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setTheme(R.style.MyTheme); // (for Custom theme)
  setTheme(Android.R.style.Theme_Holo); // (for Android Built In Theme)

  this.setContentView(R.layout.myactivity);

Manifest.xmlのApplicationスコープで設定するには(すべてのアクティビティ):

 <application
    Android:theme="@Android:style/Theme.Holo"
    Android:theme="@style/MyTheme">

Manifest.xmlのアクティビティスコープで設定するには(単一のアクティビティ):

  <activity
    Android:theme="@Android:style/Theme.Holo"
    Android:theme="@style/MyTheme">

カスタムテーマを作成するには、themes.xmlファイルでテーマを宣言し、styles.xmlファイルでスタイルを設定する必要があります。

30
live-love

setContentView()を呼び出す前に、setTheme(Android.R.style...)を呼び出して、...を目的のテーマ(Theme、Theme_NoTitleBarなど)に置き換えてください。

または、テーマがカスタムテーマの場合は、全体を置き換えて、setTheme(yourThemesResouceId)を取得します

8
jcw