web-dev-qa-db-fra.com

Android sauvegarde Bitmap sur carte SD

J'ai un bouton, et je veux que lorsque je clique dessus, l'image soit enregistrée sur la carte SD (ou dans le stockage interne, car en htc one x nous n'avons pas de stockage externe comme une carte SD)

voici mon code:

            sd.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                MpClick.start();
                File myDir=new File("/sdcard/Saved_images");
                myDir.mkdirs();
                Random generator = new Random();
                int n = 10000;
                n = generator.nextInt(n);
                String fname = "Image-"+ n +".jpg";
                File file = new File (myDir, fname);
                if (file.exists ()) file.delete (); 
                try {
                       FileOutputStream out = new FileOutputStream(file);
                       bitMapToShare.compress(Bitmap.CompressFormat.JPEG, 600, out);
                       out.flush();
                       out.close();

                } catch (Exception e) {
                       e.printStackTrace();
                }
            }
        });

et comment faire apparaître un message, il est écrit "Votre image a été enregistrée". comme une alerte mais pendant 2 secondes puis disparaît

19
John Jared

essaye ça

private void SaveImage(Bitmap finalBitmap) {

   String root = Environment.getExternalStorageDirectory().toString();
   File myDir = new File(root + "/saved_images");    
   myDir.mkdirs();
   Random generator = new Random();
   int n = 10000;
   n = generator.nextInt(n);
   String fname = "Image-"+ n +".jpg";
   File file = new File (myDir, fname);
   if (file.exists ()) file.delete (); 
   try {
       FileOutputStream out = new FileOutputStream(file);
       finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
       out.flush();
       out.close();

   } catch (Exception e) {
       e.printStackTrace();
   }
}

et ajoutez ceci dans le manifeste

 <uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" /> 

Regardez cette réponse fichier d'enregistrement Android sur un stockage externe

[~ # ~] modifier [~ # ~] : En utilisant cette ligne, vous pouvez voir les images enregistrées dans la vue de la galerie.

sendBroadcast(new Intent(
Intent.ACTION_MEDIA_MOUNTED,
        Uri.parse("file://" + Environment.getExternalStorageDirectory())));
87

Utilisez Toast message

comme

Toast.makeText(Your_class_name.this,
                    "Your image is saved to this folder", Toast.LENGTH_LONG)
                    .show();
2
Numair