Cómo guardar las fotos tomadas en una carpeta específica?

Posible duplicado:
¿Cómo obtener el resultado de la cámara como un uri en la carpeta de datos?

Estoy tomando un Picure, y lo guardo en la carpeta predeterminada.

Aquí está mi función PictureCallBack() :

 PictureCallback myPictureCallback_JPG = new PictureCallback(){ public void onPictureTaken(byte[] arg0, Camera arg1) { Uri uriTarget = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, new ContentValues()); OutputStream imageFileOS; try { imageFileOS = getContentResolver().openOutputStream(uriTarget); imageFileOS.write(arg0); imageFileOS.flush(); imageFileOS.close(); Toast.makeText(MainActivity.this,"Image saved: " + uriTarget.toString(),Toast.LENGTH_LONG).show(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } camera.startPreview(); } }; 

¿Cómo puedo guardarlo en una carpeta específica como "/sdcard/MyCustonApp/Photos/" ?

Añadir a su código

  String path = Environment.getExternalStorageDirectory().toString(); File myNewFolder = new File(path + "/your/folder"); myNewFolder.mkdir(); File file = new File(path + "/your/folder", name + ".png"); OutputStream imageFileOS = new FileOutputStream(file); 

Así es como compruebo si la carpeta en la que quiero guardar la imagen capturada, existe o creo la carpeta si no.

 Intent getCameraImage = new Intent("android.media.action.IMAGE_CAPTURE"); File cameraFolder; if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) cameraFolder = new File(android.os.Environment.getExternalStorageDirectory(),"MyCustomApp/Photos"); else cameraFolder = StatusUpdate.this.getCacheDir(); if(!cameraFolder.exists()) cameraFolder.mkdirs(); File photo = new File(Environment.getExternalStorageDirectory(), "MyCustomApp/Photos/camera_snap.jpg"); getCameraImage.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo)); Uri uri = Uri.fromFile(photo); startActivityForResult(getCameraImage, 1); 

Esta pieza de código guardará la imagen capturada en la carpeta especificada con el nombre camera_snap y extensión: .jpg

NOTA: Esto requiere que declare el permiso siguiente en su archivo de Manifest

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
 File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages"); imagesFolder.mkdirs(); File image = new File(imagesFolder, "image.jpg"); Uri uriSavedImage = Uri.fromFile(image); imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); 

Echa un vistazo a este enlace. Cómo guardar imágenes de la cámara en Android a la carpeta específica? .

prueba este sencillo código y almacena imágenes en una carpeta:

 String root = Environment.getExternalStorageDirectory().toString(); File myDir = new File(root + "/req_images"); myDir.mkdirs(); Random generator = new Random(); int n = 10000; n = generator.nextInt(n); String fname = "Image-" + n + ".jpg"; file = new File(myDir, fname); Log.i(TAG, "" + file); if (file.exists()) file.delete(); try { FileOutputStream out = new FileOutputStream(file); bm.compress(Bitmap.CompressFormat.JPEG, 90, out); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } 

donde bm significa nombre de imagen de mapa de bits

  • ¿Cómo puedo mostrar una imagen que acabo de sacar de mi cámara en mi aplicación Android?
  • Android obtener ruta de la foto sin tomar foto
  • Una "Antes y Después" comparación de imágenes Slide Control en Andorid
  • ¿Cómo puedo agregar una imagen de contacto dentro de ContentProviderOperation?
  • ¿Cómo puedo crear efectos de fotos en Android?
  • Subir foto / foto / imagen facebook (android)
  • La orientación de la cámara de Android se inició con la intención ACTION_IMAGE_CAPTURE
  • Declarado constante para el tamaño de la foto de contacto de Android?
  • Android: subir fotos
  • Sube una foto a Facebook con Facebook Android SDK en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.