Je reçois beaucoup de demandes dans mon application pour permettre aux packs d'icônes personnalisés de la maison optimale / ouverte. La façon dont il semble fonctionner est d'installer BetterCut ou ouvrez à la maison, vous pouvez installer des tonnes de ces packs d'icônes gratuits du marché. Une fois installé ces deux applications (et d'autres applications) sondera pour ces paquets d'icônes et utilisera les icônes.
Je veux savoir comment interroger les applications d'installation pour les dossiers d'actifs disponibles. J'ai ouvert quelques-uns des packs d'icônes et vérifiait qu'il existe un dossier d'actifs et ils sont pleins de tous les fichiers Icône PNG. P>
J'ai recherché ici, d'autres sites de code, Google , etc mais il n'a pas trouvé de prospects. p>
mise à jour: p>
de la réponse ci-dessous J'ai écrit du code pour essayer de répertorier un fichier de mon propre répertoire d'actifs de projets, mais il fait Il ne semble pas fonctionner. p> ceci est la sortie: p> update 2 99% là-bas !!!: J'ai compris que vous pouvez lire dans le répertoire des actifs sans utiliser le nom du dossier: p> qui fonctionne également bien. La seule chose qui échoue en ce moment est de savoir comment répertorier les actifs de répertoire de base. P> p>String[] list = assetManager.list("icons");
p> Je suis compris que vous pouvez répertorier un répertoire à l'intérieur des actifs: P> XXX PRE>
3 Réponses :
the ressources code> L'objet vous donne accès à des actifs. packagemanager code> peut vous donner accès aux ressources code> pour une application. P>
Je pensais que je devrais ramper avant de marcher et j'ai ajouté un dossier à mon dossier d'actifs de projets et j'essaie maintenant de l'énumérer à l'aide de l'Assetmanager, mais il semble que ce soit un absence de passage lorsque vous essayez de répertorier le répertoire d'actifs. Je vais mettre à jour le message original avec le code que j'essaie.
Voir Stackoverflow.com/Questtions/1495585/...
J'ai essayé d'utiliser la méthode des "displayfiles" exactes et mettez une impression pour voir la longueur de la liste, qui est toujours égale à zéro pour tous les tests, à l'exception du dossier racine "/". Je n'ai jamais obtenu une liste des fichiers dans "/ actifs" pour pouvoir les énumérer. J'ai également essayé d'aller directement à un fichier dans mon dossier d'actifs avec: INTERPENSTREAM IS = A.OPEN ("/ ACTIFS / TEST.PNG"); Qui jette un fichier non trouvé d'exception.
Vous devriez probablement obtenir un aperçu de base sur la manière dont les ressources et les actifs fonctionnent avant de creuser dans des choses. :) p>
Premièrement, un fichier .apk n'est qu'un fichier zip, vous pouvez donc tout ce que vous souhaitez effectuer est de creuser à travers son contenu, vous pouvez mettre ce fichier sur votre ordinateur hôte et utiliser tous les outils zip normaux à regarder. p>
Deuxièmement, il existe deux types principaux de fichiers fournis par l'utilisateur dans un fichier .apk: des actifs bruts et des ressources structurées. P>
Le premier n'est qu'une hiérarchie arbitraire de fichiers pouvant être récupérés avec http://developer.android.com/reference/andrroid/content/res/assetmanager.html#open (java.lang.string) p>
Ces derniers sont traités par les outils construits dans une table structurée, ce qui leur permet de varier de la configuration. Ils sont accessibles à l'aide de ressources et de cours connexes. Des tiroirs, des cordes, des couleurs et la plupart des autres types de données que vous récupérez d'un fichier .apk est généralement stocké en tant que ressource, pas un atout. P>
Vous pouvez utiliser l'outil AAPT pour voir toutes les ressources dans un fichier .apk: AAPT Dump Resources P>
Enfin, si vous souhaitez lire les données de ces produits .apks, que diriez-vous de regarder leurs informations sur la façon de les construire? Cela devrait vous donner beaucoup d'informations très fondamentales dont vous avez besoin sur la manière dont elles sont structurées. P>
Je n'ai pas besoin d'accéder au fichier sur mon ordinateur. J'ai besoin d'accéder au répertoire des actifs dans l'application 2 de l'application 1 sur le téléphone lui-même. Je reçois une charge de bateaux de demande d'appui à la prise en charge des packs d'icônes mieuxCut gratuits sur le marché. Donc, de mon application, je souhaite que l'utilisateur puisse sélectionner les icônes à partir de là (elles sont stockées dans le dossier d'actifs, j'ai regardé). La plupart des choses que vous mentionnez ne sont pas vraiment pertinentes pour le problème initial. Je n'ai pas besoin d'un guide pour la construction d'APK, d'extraire des images ou d'utiliser des érables ou d'autres ressources dans ma propre application à partir du dossier RES.
Pour obtenir le dossier BASE Il y aura des fichiers supplémentaires répertoriés: images, sons, webkit, peut-être d'autres. Vous pouvez ignorer ces répertoires, ils font partie du répertoire de l'actif de cadres. Ceci est une citation de groups.google.com : P> Actuellement, le gestionnaire d'actifs fusionne la
Répertoire d'actifs du cadre
Ressources avec vos propres fichiers
placé dans des "actifs". Nous devrions
changer probablement ce comportement (c'était
partie d'une ancienne ressource / localisation
modèle), mais ça ne fait pas beaucoup de dégâts
Sauf que tu vois plus
Fichiers / répertoires dans vos propres atouts
que vous ne pouvez vous attendre. Aucun de vos
fichiers qui sont les mêmes que l'un dans le
Les actifs-cadres seront utilisés à la place,
lorsqu'il est accédé à travers votre
Assetmanager. P>
blockQuote> Vous pouvez également répertorier un sous-dossier dans le répertoire des actifs et ne pas avoir besoin de barres obliques: p> Notez que je n'ai pas inclus qui se chargera dans un fichier dans le dossier d'actifs de base. Ou vous pouvez charger un fichier dans un sous-dossier comme celui-ci: p> Si vous devez charger ces PNGS dans un bitmap, vous pouvez également effectuer les éléments suivants: P> / ARTICLE CODE> Vous devez utiliser l'actifsManager pour répertorier le répertoire avec juste des citations:
"/ actifs " code> dans le nom de fichier.
Enfin, une fois votre liste de fichiers que vous pouvez les charger, vous pouvez les charger comme: p> Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
Cela semble faire l'affaire, merci! De plus, la citation des actifs-cadres fusionne avec le dossier d'actifs est également drôle d'un employé de Google Hackbod, qui est la même personne qui n'a pas fourni la réponse ici.