J'ai ce qui suit:
getResources().getResourceEntryName(resourceId);
4 Réponses :
Réponse courte: vous ne pouvez pas.
Une autre façon de le faire, seraient de mettre vos graphiques à l'intérieur du dossier d'actifs. Ensuite, vous pouvez accéder aux fichiers directement, sans votre application nécessitant une autorisation. P>
Vous pouvez, par exemple, le faire dans votre activité: p> i J'espère que cela accomplira ce que vous aviez à l'esprit. p> update strong>: il semble que ce soit bien possible, voir La réponse de Aleksandar Stojiljkovic à la place. p> p>
Le problème est que j'ai besoin que les fichiers soient dans des ressources pour montrer dans des images et pour pouvoir le montrer dans webview. Donc, WebView a besoin d'un lien vers le fichier (y compris l'extension). Je l'ai résolu comme une solution de contournement en déclarant 2 tableaux dans des valeurs / des tableaux.xml. Un avec les ID de ressources et une avec leurs extensions de nom de fichier.
S'avère que est i> possible, la solution d'Aleksandar fonctionne!
D'accord, j'ai mis à jour ma réponse pour diriger les utilisateurs à sa réponse. Merci pour l'information!
Pour obtenir "res / dessinable / pic.jpg" Vous pouvez utiliser ceci:
TypedValue value = new TypedValue();
getResources().getValue(resourceId, value, true);
// check value.string if not null - it is not null for drawables...
Log.d(TAG, "Resource filename:" + value.string.toString());
// ^^ This would print res/drawable/pic.jpg
En effet, et il y a d'API Niveau 1 :) Marquage comme solution
Ne fonctionne pas, retourne myImage.xml pour moi même si la vraie extension est png.
Vous pouvez le faire
Field[] fields = R.raw.class.getFields();
for (int count = 0; count < fields.length; count++) {
// Use that if you just need the file name
String filename = fields[count].getName();
Log.i("filename", filename);
int rawId = getResources().getIdentifier(filename, "raw", getPackageName());
TypedValue value = new TypedValue();
getResources().getValue(rawId, value, true);
String[] s = value.string.toString().split("/");
Log.i("filename", s[s.length - 1]);
}
Ceci devrait être la meilleure solution: resname = "pic.jpg" p> p> p>