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:

  • Les clics ne fonctionnent pas dans WebView
  • Android envoie des fichiers / données de l'application via Bluetooth à l'ordinateur / imprimante / scanner / autre appareil
  • Android IllegalStateException: Fragment non associé à Activity Webview
  • Dialogue personnalisé sur Android: comment puis-je centrer son titre?
  • Dessinez une courbe parfaite reliant trois points
  • Supprimez l'icône de l'application et le titre de la barre d'action Honeycomb
  • <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> 

  • Ajouter une dépendance à un plugin Android Cordova
  • La boussole Android ne semble pas fiable
  • Erreur: package javax.annotation n'existe pas après la mise à niveau vers lombok 1.16.2
  • Référencer la bibliothèque google-play-services
  • Android - Comment afficher le logo de l'application dans la barre d'action
  • Obtenir une erreur: Impossible de trouver la classe 'android.app.AppOpsManager', référencé à partir de la méthode com.google.android.gms.common.GooglePlayServicesUtil.zza
  • 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.