将主题应用于Android中的活动?

我知道如何将一个主题应用到整个应用程序中,但是我会在哪里将主题应用于单个活动?

您可以通过在清单文件内的<activity>包含android:theme来将主题应用于任何活动。

例如:

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

如果你想以编程方式设置主题,那么在onCreate()方法中调用setContentView()super.onCreate()方法之前,使用setTheme()

在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 android:theme="@android:style/Theme.Holo" android:theme="@style/MyTheme"> 

在Manifest.xml中设置Activity范围(单个活动):

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

要构build自定义主题,您必须在themes.xml文件中声明主题,并在styles.xml文件中设置样式。

在调用setContentView()之前,请调用setTheme(android.R.style...)并将其replace为…所需的主题(Theme,Theme_NoTitleBar等)。

或者如果你的主题是一个自定义的主题,那么取代整个事情,所以你得到setTheme(yourThemesResouceId)