Cómo guardar un mapa de bits en la galería del teléfono?
Tomo una foto y la muestro en una imagen. Entonces consigo el mapa de bits de la vista de la imagen en mi actividad y cuando presiono un botón quiero ahorrar este mapa de bits en la galería del teléfono. ¿Que debería hacer?
Llamar a esta función en el botón onClick
private void saveImage() { 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); finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } }
Marque este mapa de bits de guardar
Prueba esto
Bitmap toDisk = Bitmap.createBitmap(w1,h1,Bitmap.Config.ARGB_8888); setBitmap(toDisk); Bitmap myBitmap = BitmapFactory.decodeResource(getResources(),R.drawable.ban_background); Bitmap resizeImage1=Bitmap.createScaledBitmap(myBitmap,590,350,false); try { toDisk.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File("/mnt/sdcard/image".jpg"))); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }
Usted tendrá que obtener la ruta de acceso al directorio de almacenamiento externo del teléfono primero, luego el directorio donde se almacenan las imágenes de la galería. En la mayoría de los modelos de Android esto es / mnt / sdcard / imágenes, pero no sugiero hardcoding esta ruta de acceso en su lugar
Environment.getExternalStorageDirectory();
Después de eso sólo crear una ruta de acceso a ese directorio y utilizar un outputStream para escribir su mapa de bits a ese directorio.