将主题应用于Android中的活动?
我知道如何将一个主题应用到整个应用程序中,但是我会在哪里将主题应用于单个活动?
您可以通过在清单文件内的<activity>
包含android:theme
来将主题应用于任何活动。
例如:
-
<activity android:theme="@android:style/Theme.Dialog">
-
<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)