comment accéder aux ressources dans un projet de bibliothèque Android
Je fais construire une android projet de bibliothèque qui ont besoin de quelques ressources statiques(images/xml et etc) en interne.
Alors je me demande où je peux mettre ces ressources et comment y accéder?
Depuis que j'ai mis les ressources dans le assets
dossier. Et j'utilise le d'assetmanager d'accès aux ressources:
public class DataProvider {
byte[] getDrawableData(int num) {
AssetManager am = Resources.getSystem().getAssets();
InputStream is = null;
try {
is = am.open("t.jpg");
} catch (IOException e) {
return "".getBytes();
}
if (is != null) {
Drawable dw = Drawable.createFromStream(is, null);
Bitmap bm = ((BitmapDrawable) dw).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, stream);
return stream.toByteArray();
}
return "".getBytes();
}
}
Cependant j'ai obtenu l'erreur: W/System.err(19583): java.io.FileNotFoundException: t.jpg
Quel est le problème?
Comme Sankar V
dit le projet de bibliothèque ne prend pas en charge le raw actifs. Alors, Il semble que je dois mettre le resurces en vertu de la res
dossier.
Mais j'ai essayé d'utiliser le Resources.getSystem().getResources()....
méthode qui ne peut pas obtenir ce que je veux. Et les gens disaient que cette méthode ne peut obtenir que le système de niveau de ressources, plutôt que le niveau d'application des ressources.
Si c'est la vérité. Ça veut dire que je dois tenir une référence de la Context
objet n'importe où je veux obtenir toutes les ressources?
source d'informationauteur hguser | 2013-04-17
Vous devez vous connecter pour publier un commentaire.
Alors je me demande où je peux mettre ces ressources et comment y accéder?
À partir d'Android Doc de
Projets de la bibliothèque ne peut pas comprennent les actifs
Les outils ne prennent pas en charge l'utilisation de matières premières de l'actif des fichiers (enregistré dans les actifs/du répertoire) dans un projet de bibliothèque. Tous les actifs, les ressources utilisées par une application doit être stocké dans les actifs/du répertoire de l'application du projet lui-même. Cependant, de ressources de fichiers enregistrés dans le res/répertoire sont pris en charge.
Docs Lien De Référence : LibraryProjects
Solution : Comment accéder aux fichiers de ressources enregistrées dans res/répertoire de bibliothèque de projet de projet de l'application
Remarque : Si vous souhaitez accéder aux ressources de la Bibliothèque de Projet lui-même s'ajoutent les ressources pour
res/directory
pas dansassets
. Parce que les fichiers de l'actif ne sera pas fourni avec le .fichier jar.Vous pouvez y accéder comme d'habitude à l'aide de la référence généré dans
R.java
fichier.Ex: pour accéder À une image de drawable utilisation
Signifie que je dois tenir une référence de l'objet de Contexte où je veux obtenir toutes les ressources?
Vraiment, vous devriez tenir une référence au contexte de l'accès aux ressources
Mise à jour:
Maintenant Android projet de bibliothèque peuvent être générés de l'aar (Android Archive) fichier qui vous permet de regrouper les fichiers de ressources nécessaires pour le projet de bibliothèque à la place de la vieille jar (Java Archive) fichier qui ne vous permettent de regrouper des classes Java.
Ou vous pouvez utiliser un Dossier Lié dans Eclipse, et le lien de votre dossier des actifs à travers à votre nouveau projet.