2010-12-14 36 views
0

J'utilise le code suivant:Comment appliquer Theme.Wallpaper au moment de l'exécution sur android?

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setTheme(android.R.style.Theme_Wallpaper); 
    setContentView(R.layout.main); 
} 

Mais il ne fait rien!

Comment puis-je appliquer Theme.Wallpaper à l'exécution sur android?

+0

ne sais pas si ce serait la matière, mais avez-vous essayé d'appeler setContentView en premier? – schwiz

+0

J'ai essayé, mais rien n'a changé. – skyisle

Répondre

1

Cela fonctionne lorsque vous appelez la méthode setTheme() avant même l'appel au constructeur de votre classe parente (c'est-à-dire avant super.onCreate(...)).

Les œuvres suivantes pour moi:

public void onCreate(Bundle savedInstanceState) { 
    setTheme(android.R.style.Theme_Wallpaper); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
} 

Cependant, ce n'est pas parfait: lors du lancement de l'activité, l'animation montrée appartient toujours au thème par défaut -> un écran noir apparaît en fondu après la fin de l'animation,. le thème du papier peint est affiché.

Si vous voulez avoir un fade-in sur le thème papier peint animation, vous devez utiliser la déclaration dans votre AndroidManifest.xml

+0

Je pense que c'est tout ce que je peux faire. merci @ kaktus621 – skyisle