Comment créer par programme un style de thème Android?

Il existe de nombreux docs et tutoriels sur la création ou la personnalisation d'un style de thème Android via XML, mais n'ont pas été en mesure de trouver un moyen de le créer dans un code. Des idées sur la création du style dans le code plutôt que sur le xml?

Ceci est l'exemple XML, il faut créer cela par programme dans le code:

<resources> <style name="AppTheme" parent="android:Theme.Material"> <item name="android:colorPrimary">@color/primary</item> <item name="android:colorPrimaryDark">@color/primary_dark</item> <item name="android:colorAccent">@color/accent</item> </style> </resources> 

  • Utiliser les parents pour des ressources attirables
  • Comment définir le style d'un textView par programmation?
  • Style de menu ShareActionProvider
  • Android CollapsingToolbarLayout Title background
  • Impossible de remplacer style switchStyle et NumberPicker dans Android
  • Thèmes Android - comment définir le style uniquement pour les types de vue spécifiques
  • Comment puis-je faire apparaître une vue de texte Android comme si elle était désactivée?
  • Comment référencer un style dans un thème personnalisé
  • 2 Solutions collect form web for “Comment créer par programme un style de thème Android?”

    Réponse courte: Il n'est pas possible en tant que création programmatique d'un thème et de définir comme thème d'application (même si nous avons réalisé créer un objet Theme ) sans un identifiant de ressource de thème.

    Détails:

    Lorsque vous appelez setTheme la fonction ineffecte une méthode de ContextWrapper qui, à la fin, appelle AssetManager avec le pointeur d'identification de ressource, la classe AssetManager contient la méthode d'application du thème d'application, qui est l'appel JNI

     native static final void applyThemeStyle(long theme, int res, boolean force); 

    Comme ci-dessus, nous ne pouvons passer qu'un ID de ressource pour appliquer le style. Mais les options possibles sont

    1. Bien que limité aux constantes de caractéristiques de la classe Window . Nous pouvons utiliser setFeatureDrawable et les constantes de fonctionnalité pour définir certains jeux comme FEATURE_ACTION_BAR , FEATURE_CONTEXT_MENU etc.
    2. En utilisant la fonction setTheme à partir de l'activité, nous pouvons définir le thème à partir d'une ressource de style, qui résoudra le problème mentionné dans les commentaires d' AjaySharma & Nathan

     <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> 

    Vous pouvez l'utiliser …

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.