IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Récupérer un File depuis une image de la Gallery


Sujet :

Android

  1. #1
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 604
    Points : 18 520
    Points
    18 520
    Par défaut Récupérer un File depuis une image de la Gallery
    Bonjour,

    Je lance ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    startActivityForResult(new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI), CHOISIR_PHOTO);
    Donc là je suis dans la Gallery, je choisi une image et quand je reviens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (requestCode == CHOISIR_PHOTO){
         if (resultCode == Activity.RESULT_OK) {
              Uri selectedImage = data.getData();
              // ...
         }
    }
    A ce moment là j'ai l'Uri, mais il me fait absolument un File pour appeler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BitmapFactory.decodeFile(String pathName);
    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BitmapFactory.decodeFile(selectedImage.getPath());
    Mais le Bitmap en retour est égal à null.

    J'ai essayé avec managedQuery (qui est deprecated) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Cursor imgCursor = managedQuery(selectedImage, new String[] {
              MediaColumns.DATA,
              Mediastore.Images.ImageColumns.ORIENTATION },
         null, null, null);
     
    imgCursor.moveToFirst();
    File file = new File(imgCursor.getString(0));
    imgCursor.getString(0) donne /mnt/sdcard/DCIM/Camera/IMG_20120424_110304.jpg

    Mais bon file.exists() retourne false.

    Donc voilà j'ai un Uri, il me faut un File et je n'y arrive pas...
    Keith Flint 1969 - 2019

  2. #2
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 604
    Points : 18 520
    Points
    18 520
    Par défaut
    J'ai essayé avec mon Sony Ericsson et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File file = new File(imgCursor.getString(0));
    Fonctionne...

    Alors que le Nexus S pas du tout.
    Enfin c'est étrange.

    De toute façon, depuis une mise à jour du SDK, j'ai des problèmes étranges.
    Le code ne se compile plus tout seul, enfin si, mais mal.
    Par exemple j'ai une erreur dans le code, je la corrige et elle n'est pas répercuté, même si j'essaie de run le projet.

    Je suis obligé de faire des clean à chaque fois...

    Edit :
    J'ai trouvé un peu près la source de l'erreur, dans les détails de l'image il est indiqué qu'elle se situe dans :
    /mnt/sdcard/DCIM/Camera/

    Mais dans le dossier cette image n'existe pas.
    J'ai donc choisi une image qui était dans ce dossier et cela a fonctionné.

    Bon par contre je ne sais pas où est réellement stocké ces images...
    Ni pourquoi l'adresse que j'ai est fausse.

    Edit :
    En fait je faisais tempFile.delete();
    Parce que soit je choisi une photo soit j'en prend une nouvelle.
    Quand j'en prend une nouvelle je supprimer le fichier à la fin.

    Et les suppressions ne sont pas répercuté dans la gallery.
    Keith Flint 1969 - 2019

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/08/2013, 12h43
  2. Réponses: 6
    Dernier message: 22/03/2013, 13h57
  3. Récupérer les dimensions d'une image d'un champ input file
    Par identifiant_bidon dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/05/2011, 10h06
  4. Récupérer la taille d'une image dans un fichier (GIF/JPEG)
    Par SheikYerbouti dans le forum Multimédia
    Réponses: 4
    Dernier message: 12/05/2005, 14h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo