Je sais comment appliquer un thème à une application entière, mais où puis-je appliquer un thème à une seule activité?
86
Vous pouvez appliquer un thème à n'importe quelle activité en incluant android:theme
à l' <activity>
intérieur du fichier manifeste.
Par exemple:
<activity android:theme="@android:style/Theme.Dialog">
<activity android:theme="@style/CustomTheme">
Et si vous souhaitez définir le thème par programme, utilisez-le setTheme()
avant d'appeler setContentView()
et de super.onCreate()
méthode à l'intérieur de la onCreate()
méthode.
tools:context= ".YourAtivityName"
dans la racinePour le définir par programme dans 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);
Pour définir la portée de l'application dans Manifest.xml (toutes les activités):
<application android:theme="@android:style/Theme.Holo" android:theme="@style/MyTheme">
Pour définir la portée de l'activité dans Manifest.xml (activité unique):
<activity android:theme="@android:style/Theme.Holo" android:theme="@style/MyTheme">
Pour créer un thème personnalisé, vous devrez déclarer le thème dans le fichier themes.xml et définir les styles dans le fichier styles.xml.
la source
android:theme
attributs?android:theme="@android:style/Theme.Holo"
est la syntaxe pour ajouter un thème intégré Android.android:theme="@style/MyTheme"
est la syntaxe pour ajouter un thème personnalisé décrit dans votrestyles.xml
fichier. Dans votreAndroidManifest.xml
fichier actuel , vous n'utiliseriez que l'un ou l'autre pour chaque section, pas les deux.styles.xml
puis utilisez la syntaxeandroid:theme=@style/MyBlankTheme
.Avant d'appeler
setContentView()
, appelezsetTheme(android.R.style...)
et remplacez simplement le ... par le thème de votre choix (Theme, Theme_NoTitleBar, etc.).Ou si votre thème est un thème personnalisé, remplacez le tout pour obtenir
setTheme(yourThemesResouceId)
la source