Je travaille sur une application vraiment désordonnée et la première fois avec des saveurs. App a comme 4,5 saveurs tous avec des couleurs de fond identiques, drawables, etc. Seul le logo est différent.Comment modifier automatiquement les tiroirs en fonction d'une saveur?
Maintenant, je dois faire une nouvelle saveur avec une mise en page complètement différente. La couleur d'arrière-plan doit être jaune au lieu de grise et les images pouvant être dessinées doivent être en noir plutôt qu'en blanc. Le problème est, j'ai comme 100 images blanches différentes. Est-il possible que je puisse les changer en noir automatiquement? (le concepteur peut les redessiner ou n'importe quoi pour être noir et je peux les mettre dans le dossier drawable de cette saveur) Ou je devrais vérifier par programmation si la nouvelle saveur est utilisée alors appelez setDrawable (newBlackImage) sur chaque widget qui utilise le drawable blanc? Cela semble être une façon très compliquée de faire puisque tous les drawables sont mis en page XML.
La façon dont ils ont utilisé les arômes était de créer un fichier booléen de ressources et de vérifier le code si une clé a la valeur vrai/faux alors cacher/montrer certaines choses ... Donc je suppose que je devrais faire quelque chose de similaire avec ça, ou non?
C'est ce que la structure du projet pour un de mes goûts ressemble à:
Comme vous pouvez le voir, chaque saveur a seulement différentes icônes écran lanceur et de connexion. Chacun a aussi ses propres fichiers de ressources de tableaux, de binaires et de chaînes. Mais tous partagent les mêmes ressources de mise en page et les drawables avec des icônes blanches.
Si vous utilisez des ressources VectorDrawables au lieu d'images, ils peuvent être teintés par programmation sans utiliser des fichiers différents. –
Malheureusement, tous sont des ressources d'image:/Designer m'a dit qu'il peut m'envoyer les noirs, donc ce n'est pas un problème. Le problème principal est, j'ai une mise en page qui définit le src pour imageview comme l'une des icônes blanches. Je veux juste éviter de le changer en noir par programme – joe