Je suis en train de faire une application qui fonctionne avec des images. J'ai besoin d'implémenter des fonctionnalités où l'utilisateur choisit un fichier stocké sur la carte SD. Une fois qu'ils ont choisi l'image (en utilisant la galerie Android), l'emplacement du fichier de l'image sera envoyé à une autre activité, où d'autres travaux seront effectués.Get Image Emplacement du fichier d'image dans Android
J'ai vu des messages similaires ici sur SO, mais aucun pour répondre à ma question en particulier. En gros, cela est le code que je fais lorsque l'utilisateur clique sur le « Charger une image » bouton:
// Create a new Intent to open the picture selector:
Intent loadPicture = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
// To start it, run the startActivityForResult() method:
startActivityForResult(loadPicture, SELECT_IMAGE);
A partir de ce code, j'ai ensuite une méthode onActivityResult()
pour écouter le rappel:
// If the user tried to select an image:
if(requestCode == SELECT_IMAGE)
{
// Check if the user actually selected an image:
if(resultCode == Activity.RESULT_OK)
{
// This gets the URI of the image the user selected:
Uri selectedImage = data.getData();
// Create a new Intent to send to the next Activity:
Intent i = new Intent(currentActivty.this, nextActivity.class);
// ----------------- Problem Area -----------------
// I would like to send the filename to the Intent object, and send it over.
// However, the selectedImage.toString() method will return a
// "content://" string instead of a file location. How do I get a file
// location from that URI object?
i.putExtra("PICTURE_LOCATION", selectedImage.toString());
// Start the activity outlined with the Intent above:
startActivity(i);
Comme l'indique le code ci-dessus, le uri.toString()
renvoie une chaîne content://
au lieu de l'emplacement du fichier de l'image sélectionnée. Comment puis-je obtenir l'emplacement du fichier?
Remarque: Une autre solution possible consiste à envoyer la chaîne content://
et à la convertir en Bitmap
(ce qui se produit dans l'activité suivante). Cependant, je ne sais pas comment faire ça.
Je ne suis pas 100% à ce sujet mais je pense que j'ai fait quelque chose comme selectedImage.getPath(); – stealthcopter