Sé cómo aplicar un tema a toda una aplicación, pero ¿adónde iría para aplicar un tema a una sola actividad?
86
Puede aplicar un tema a cualquier actividad incluyendo android:theme
dentro del <activity>
archivo de manifiesto dentro.
Por ejemplo:
<activity android:theme="@android:style/Theme.Dialog">
<activity android:theme="@style/CustomTheme">
Y si desea configurar el tema programáticamente, úselo setTheme()
antes de llamar setContentView()
y el super.onCreate()
método dentro del onCreate()
método.
tools:context= ".YourAtivityName"
en la raízPara configurarlo programáticamente en 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);
Para establecer el alcance de la aplicación en Manifest.xml (todas las actividades):
<application android:theme="@android:style/Theme.Holo" android:theme="@style/MyTheme">
Para establecer el alcance de la actividad en Manifest.xml (actividad única):
<activity android:theme="@android:style/Theme.Holo" android:theme="@style/MyTheme">
Para crear un tema personalizado, deberá declarar el tema en el archivo themes.xml y establecer estilos en el archivo styles.xml.
fuente
android:theme
atributos?android:theme="@android:style/Theme.Holo"
es la sintaxis para agregar un tema integrado de Android.android:theme="@style/MyTheme"
es la sintaxis para agregar un tema personalizado descrito en sustyles.xml
archivo. En suAndroidManifest.xml
archivo real , solo usaría uno u otro para cada sección, no ambos.styles.xml
y luego use la sintaxisandroid:theme=@style/MyBlankTheme
.Antes de llamar
setContentView()
, llamesetTheme(android.R.style...)
y simplemente reemplace ... con el tema que desee (Theme, Theme_NoTitleBar, etc.).O si su tema es un tema personalizado, reemplace todo, para que obtenga
setTheme(yourThemesResouceId)
fuente