Eu sei como aplicar um tema a um aplicativo inteiro, mas onde iria para aplicar um tema a apenas uma atividade?
86
Você pode aplicar um tema a qualquer atividade incluindo android:theme
dentro do <activity>
arquivo de manifesto.
Por exemplo:
<activity android:theme="@android:style/Theme.Dialog">
<activity android:theme="@style/CustomTheme">
E se você quiser definir o tema programaticamente, use o método setTheme()
antes de chamar setContentView()
e super.onCreate()
dentro do onCreate()
método.
tools:context= ".YourAtivityName"
na raizPara defini-lo programaticamente em 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 definir no escopo do aplicativo em Manifest.xml (todas as atividades):
<application android:theme="@android:style/Theme.Holo" android:theme="@style/MyTheme">
Para definir o escopo da atividade em Manifest.xml (atividade única):
<activity android:theme="@android:style/Theme.Holo" android:theme="@style/MyTheme">
Para construir um tema customizado, você terá que declarar o tema no arquivo themes.xml e definir estilos no arquivo styles.xml.
fonte
android:theme
atributos?android:theme="@android:style/Theme.Holo"
é a sintaxe para adicionar um tema integrado ao Android.android:theme="@style/MyTheme"
é a sintaxe para adicionar um tema personalizado descrito em seustyles.xml
arquivo. Em seuAndroidManifest.xml
arquivo real, você usaria apenas um ou outro para cada seção, não ambos.styles.xml
e use a sintaxeandroid:theme=@style/MyBlankTheme
.Antes de chamar
setContentView()
, chamesetTheme(android.R.style...)
e apenas substitua o ... pelo tema que deseja (Theme, Theme_NoTitleBar, etc.).Ou, se o seu tema for um tema personalizado, substitua tudo, para obter
setTheme(yourThemesResouceId)
fonte