Guardar una imagen en el teléfono móvil Android

Quiero guardar una imagen que se recibe de un flujo de entrada al dispositivo. Esta imagen se muestra usando un ImageView y la función decodeStream().

¿Cómo puedo guardar la imagen recibida en una ruta específica (por ejemplo, en la tarjeta SD) en el teléfono móvil?

preguntado el 07 de marzo de 13 a las 22:03

2 Respuestas

Para guardar en su almacenamiento externo, puede obtener la ruta de esta manera:

Environment.getExternalStorageDirectory().toString();

Luego, cuando inicie una intención de cámara, use esto, la ubicación del archivo puede ser cualquier ruta.

camera.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, [file location]);

Más información aquí: http://developer.android.com/reference/android/provider/MediaStore.html#EXTRA_OUTPUT

respondido 07 mar '13, 23:03

este es mi código: Bitmap bmp = BitmapFactory.decodeStream(connection.getInputStrea()); entonces, ¿cómo agregar una imagen bmp a la ubicación del archivo? - WassiM ZgheiB

URL url = nueva URL (Environment.getExternalStorageDirectory().toString() + [Nombre de archivo]); Mapa de bits bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream()); - nedaRM

¿Qué es [Nombre de archivo]? la ruta o el nombre de la imagen?? - WassiM ZgheiB

Aunque es mejor si lo pones en una carpeta de algún tipo - nedaRM

haga un mapa de bits también desde decodestream, digamos photo2

 mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
              Environment.DIRECTORY_PICTURES), "your apps name");   

 mediaFile = new File(mediaStorageDir.getPath() + File.separator +
                 "Image" + num + ".png"); // make a int num and save it and
        try {                      //add it to the file name, increment for every
                                     //save that you do
            fOut = new FileOutputStream(mediaFile);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


        photo2.compress(Bitmap.CompressFormat.PNG, 100,fOut);

respondido 07 mar '13, 23:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.