2012-12-06 4 views
0

Je voulais créer un dossier et stocker une image dans le stockage interne du téléphone. J'ai essayé d'utiliser le code ci-dessous pour télécharger une image de l'URL. Il a réussi à charger l'image dans imageView mais incapable de stocker et de créer un dossier dans le stockage interne. De plus, je n'ai reçu aucun message d'avertissement ou d'erreur. Une idée quel est le mauvais code ci-dessous?Impossible de stocker l'image dans le répertoire de stockage interne

 Bitmap bm = null; 
     InputStream in; 

      try{ 

       in = new java.net.URL("http://blogs.computerworld.com/sites/computerworld.com/files/u177/google-nexus-4.jpg").openStream(); 
       bm = BitmapFactory.decodeStream(new PatchInputStream(in)); 
       File mydir = this.getDir("mydir", Context.MODE_PRIVATE); 
       mydir.mkdirs(); 
       File fileWithinMyDir = new File(mydir, "myfile"); 
       FileOutputStream out = new FileOutputStream(fileWithinMyDir); 
       bm.compress(Bitmap.CompressFormat.JPEG, 85, out); 



      } 
      catch(Exception e1){ 
       e1.printStackTrace(); 
      } 
    ImageView img = (ImageView) findViewById(R.id.image_display); 
    img.setImageBitmap(bm); 
+0

Une autre question est que si je créé dans le stockage interne sera elle apparaît dans la galerie aussi bien? –

Répondre

1

une fois que vous avez votre bitmap bm:

FileOutputStream fos; 

try { 
    fos = openFileOutput("file_Name", Context.MODE_PRIVATE); 
    bm.compress(Bitmap.CompressFormat.PNG, 100, fos); 
    fos.close(); 
}catch (Exception e){ 
... 
} 

va enregistrer votre fichier dans la mémoire interne

1

utilisez les touches suivantes:

String path=Environment.getExternalStorageDirectory() 
           .toString() + File.separator 

pour obtenir le répertoire et enregistrer l'image.

+0

J'ai essayé d'utiliser ceci. Ça ne marche toujours pas. Aucune idée pourquoi ou comment. –

+0

Cela m'a aussi frustré. getExternalStorageDirectory() renverra quelque chose comme/storage/emulated/0/... quand sur certains ou seulement les appareils Nexus qui n'ont pas de stockage externe n'ont pas ce répertoire. Cela devrait être/storage/emulated/legacy/...! Pourquoi sur mon Nexus10 renvoie-t-il un chemin qui n'existe pas et est incorrect? Grrr ... – garlicman

Questions connexes