Pouvez Android drawable répertoire contient des sous-répertoires?
Dans l'Android SDK, tous les exemples utilisés avec le @drawable/my_image syntaxe xml directement l'adresse des images qui sont stockées dans le res/drawable-répertoire dans le répertoire de mon projet.
Je me demande si c'est explicitement pas d'accord pour créer un sous répertoire dans le drawable répertoire.
Par exemple, si j'avais le répertoire suivant la mise en page:
res/drawable
-- sandwiches
-- tunaOnRye.png
-- hamAndSwiss.png
-- drinks
-- coldOne.png
-- hotTea.png
Pourrais-je renvoi l'image d'une salade de thon sandwich comme @drawable/sandwichs/tunaOnRye
Ou dois-je garder la hiérarchie à plat dans le drawable répertoire.
- Veuillez noter que les majuscules ne sont pas autorisés dans le répertoire res.
- Vous ne pouvez le faire avec Gradle: stackoverflow.com/a/19859379
- Est-il possible d'avoir FRÈRE répertoires de drawable, avec le drawable fonctionnalité? Donc, res/réservoirs/drawble-[hdpi .. etc] et ainsi de suite?
Vous devez vous connecter pour publier un commentaire.
Non, le mécanisme des ressources ne prend pas en charge les sous-dossiers dans le drawable répertoire, alors oui - vous avez besoin de garder cette hiérarchie plate.
Le répertoire de mise en page que vous nous avez montré entraînerait aucune des images disponibles.
À partir de mes propres expériences, il semble que le fait d'avoir un sous-dossier avec tous les éléments, à l'intérieur de la
res/drawable
dossier, le compilateur de ressources à l'échec -- la prévention de laR.java
fichier généré correctement.res
répertoire, qui a causé propre construit pour durer plus de 10 minutes (oui, beaucoup de ressources, mais encore..). Lorsque nous nous sommes rapprochés de ceux de l'extérieur deres
répertoire, il est tombé à 3 minutes (pas encore à l'aide de Gradle).La solution de contournement que j'utilise (et d'un Android lui-même semble favoriser) est essentiellement à substituer un trait de soulignement pour une barre oblique, de sorte que votre structure ressemblerait à quelque chose comme ceci:
L'approche nécessite d'être méticuleux dans votre manière de nommer et de ne pas le rendre beaucoup plus facile de se disputer les fichiers eux-mêmes (si vous avez décidé que des boissons et des sandwiches devrait vraiment être
food
", vous auriez à faire une masse renommer plutôt que de simplement déplacer dans le répertoire); mais votre logique de programmation de la complexité de ne pas subir trop mal par rapport à la structure de dossier équivalent.Cette situation suce en effet. Android est un mélange de merveilleux et terrible, les décisions de conception. Nous ne pouvons qu'espérer pour la dernière partie pour obtenir désherbé avec toutes hâte 🙂
turkey
va de pair avec la suisse.Oui - il n'a sucer 🙂 Mais vous pouvez utiliser le dossier des actifs et des sous répertoires là-bas et de charger les images de cette façon.
En fait, sur Android Studio, il est possible. Vous pouvez avoir imbriqués ressources comme le montre ici :
Il y a aussi un plugin pour le groupe de ressources ici.
D'utiliser les actifs dossier.
exemple de code:
J'ai écrit un plugin eclipse qui permet de créer des sous-dossier en séparant le nom de fichier par deux caractères de soulignement
__
. Le projet est dans les premiers stades, mais ne vous inquiétez pas de ne pas planter votre IDEplus de détails peuvent être trouvés ici, n'hésitez pas à fourche et d'envoyer des pull requests:
https://github.com/kirill578/Android-Sorted-Res-Folder
J'aime utiliser un script simple pour aplatir un répertoire organisé de la structure fournie par les concepteurs pour quelque chose qui peut être utilisé pour générer un R de fichier.
Courir avec chemin d'accès actuel dans drawable-hdpi:
Dans android studio avec gradle vous pouvez avoir plusieurs source de l'administration qui vous permettra de séparer les ressources. Par exemple:
Cependant les noms ne doivent pas entrer en collision ce qui signifie que vous aurez toujours besoin d'avoir des noms tels que sandwiches_tunaOnRye mais vous serez en mesure d'avoir une autre section pour tous vos sandwichs.
Cela vous permet de stocker vos ressources dans différentes structures (utile pour la génération automatique de contenu tels que les actionbargenerator)
Une partie de contourner le problème est d'utiliser l'API de Niveau suffixe.
J'utilise res/layout-v1, res/layout-v2 etc pour contenir plusieurs sous-projets dans le même fichier apk.
Ce mécanisme peut être utilisé pour tous les types de ressources.
De toute évidence, ce ne peut être utilisé si vous êtes le ciblage de l'API niveaux au-dessus de la res/layout-v? vous êtes en utilisant.
Aussi, regarder dehors pour le bug sur Android 1.5 et 1.6.
Voir Andoroid de la documentation sur les API de Niveau suffixe.
Avec l'avènement du système de bibliothèque, création d'une bibliothèque par grand ensemble des actifs pourrait être une solution.
Il est toujours problématique que l'on doit éviter d'utiliser le même nom au sein de tous les actifs, mais à l'aide d'un préfixe de régime par la bibliothèque devrait vous aider.
Il n'est pas aussi simple que d'être en mesure de créer des dossiers, mais qui permet de garder les choses sain d'esprit...
Il y a une solution pour cette situation: vous pouvez créer un
resVector
(par exemple) dossier sur le même niveau que par défautres
dossier. De là, vous pouvez ajouter n'importe queldrawable-xxx
dossiers de ressources là:Après que tous vous avez besoin est d'ajouter
dans votre
build.gradle
fichier (à l'intérieur deandroid { }
).Ce n'est pas parfait méthodes. Vous avez à mettre en œuvre même façon qui est l'affichage ici.
Vous pouvez également appeler l'image dans le dossier par le code que vous pouvez utiliser
Pas la mienne, mais j'ai trouvé ce fil de discussion lors de la recherche de ce problème, si votre utilisation d'Android Studio et système de Build Gradle son assez facile, pas de plugins nécessaires juste un peu construire la modification du fichier de
https://stackoverflow.com/a/22426467/618419
Gradle avec Android Studio pourrait faire de cette façon (lien).
C'est dans le paragraphe "Configuration de la Structure"
créez un dossier dans la main.
comme: 'res_notification_btn'
et de créer l'arborescence de dossiers dans la. comme "drawable" ou "disposition"
puis, en construire.gradle " ajouter ce
Vérifier Bash Aplatir Dossier script qui convertit hiérarchie de dossiers dans un dossier unique
actifs/
Vous pouvez l'utiliser pour stocker des raw fichiers d'actifs. Les fichiers que vous enregistrez ici sont compilées dans une .apk fichier en tant que-est, et le nom de fichier d'origine est conservé. Vous pouvez naviguer dans ce répertoire, de la même manière qu'un système de fichiers à l'aide d'Uri et de lire des fichiers en un flux d'octets à l'aide de la d'assetmanager. Par exemple, c'est un bon emplacement pour les textures et les données de jeu.
http://developer.android.com/tools/projects/index.html
Les sous-répertoires ne sont pas autorisés, la ressource ne doit contenir que des [a-z0-9_.].
Pas que vous avez des lettres majuscules, et pas de barres obliques.