551 votes

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.

584voto

Reto Meier Points 55904

Non, les ressources mécanisme 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 l' res/drawable le dossier, le compilateur de ressources à l'échec -- la prévention de l' R.java fichier généré correctement.

161voto

Cheezmeister Points 2109

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:

sandwich_tunaOnRye.png
sandwich_hamAndSwiss.png
drink_coldOne.png
drink_hotTea.png

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 tous "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é ne souffre pas 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 :)

37voto

Lemonsanver Points 903

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.

24voto

milkia Points 147

L'utilisation du dossier des actifs.

exemple de code:

InputStream is = null;
try {
    is = this.getResources().getAssets().open("test/sample.png");
} catch (IOException e) {
    ;
}

image = BitmapFactory.decodeStream(is);

22voto

Kirill Kulakov Points 1975

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 IDE

plus 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

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X