2012-08-07 19 views
18

Tengo un botón, y quiero cuando hago clic en él, la imagen se guarda en la tarjeta sd (o en el almacenamiento interno, como en htc one x no tenemos un almacenamiento externo como una tarjeta SD)Android guardar Bitmap a tarjeta SD

este es mi código:

  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(); 
       } 
      } 
     }); 

y cómo lo hacen aparece un mensaje en el que está escrito "Su imagen se guardó." como una alerta, pero por 2 segundos y luego desaparece

+1

¿Qué tal Toast.makeText (esto, R.string.your_message, Toast.LENGTH_SHORT) .show(); –

+0

bien, gracias =) –

Respuesta

82

prueba este

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(); 
    } 
} 

, y agregue esto manifiesta

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

mirada a esta respuesta Android saving file to external storage

EDITAR: Mediante el uso de esta línea que pueda capaz de ver las imágenes guardadas en la vista de la galería.

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

Está funcionando perfectamente, sólo un problema que el álbum "saved_images" no aparece en la galería pero utilizando un gestor de archivos que pueda mira que hizo una carpeta "saved_images" y dentro de ella la imagen que guardé ... cómo lo hago, guárdalo en la galería –

+0

@ AhmedAl-ekrii puedes estar probando esto en el emulador, y el emulador se actualiza lentamente. Use el disparador multimedia antes de entrar a la galería. Encontrarás la carpeta especificada allí. – Numair

+0

no, estoy usando mi teléfono HTC One X .. ¿qué quiere decir con el uso de un disparador multimedia? (Soy un iniciador, lo siento) –

2

Uso mensaje de aviso emergente

como

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

gracias, funcionó =) –

+0

contento de estar ayudaron :) – Numair

Cuestiones relacionadas