Cómo guardar una imagen en Android Studio

5
1701
tutoriales android studio

En este nuevo tutorial rápido veremos cómo guardar una imagen en Android Studio. De esta manera, nuestra app lo que hará será guardar una imagen en la tarjeta de nuestro dispositivo o memoria interna. Ideal para las aplicaciones que muestran imágenes y que permiten a los usuarios guardarlas en sus smartphones o simplemente tomar fotos y poder guardarlas, según se desee en una nueva carpeta, que se creará con el nombre que nosotros queramos. Te mostramos un ejemplo completo a continuación de cómo puedes implementarlo en Android Studio.

Cómo guardar una imagen en Android Studio

Para guardar una imagen en tu smartphone o en el del usuario que ejecute la app, necesitas una clase que se llame “Save” por ejemplo, que luego llamemos desde la Activity. Puedes tomar este código que nos ha proporcionado un compañero de Stack Overflow y funciona.

  • Lo primero será crear la clase Save.

En NameOfFolder (línea 4), tendrás que especificar cómo quieres que se llame la carpeta que se le creará al usuario para guardar las imágenes de la aplicación. Puedes llamarle como quieras, o el nombre de tu app, por ejemplo. Cuando el usuario guarde la primera imagen de tu app, se le creará en memoria esa carpeta. Luego, automáticamente todas se guardarán en esa misma carpeta. Si no especificas una ruta concreta, se creará en la raíz. Lo mismo para NameOfFile, podrás llamarle como quieras.

  • Lo segundo será llamar a la clase Save desde la Activity en cuestión.

Ahora, desde la Activity que quieras, tendrás que copiar y pegar el siguiente trozo de código para que guarde la imagen. Puedes implementarlo dentro de un diálogo por ejemplo, o cuando se mantenga pulsado sobre la imagen. Lo primero será convertirla a bitmap, aquí te contamos cómo convertir imageView a Bitmap:

Con este código, podremos primero convertir la imagen a bitmap y luego guardar la imagen. Puede que no necesites hacer todo el procedimiento, pero si tienes preguntas sobre cómo guardar imágenes en Android Studio, puedes preguntarnos.

Con este ejemplo, si tienes una app que muestra imágenes de “algo”, el usuario podrá guardarlas dónde implementes la opción de guardar (savefile en nuestro ejemplo). Con la clase Save y su llamada en la Activity correspondiente, conseguirás que se guarde la imagen con ese determinado id. ¡Funciona!

Una forma de hacerlo, es mediante un diálogo por ejemplo, que al hacer clic encima de la imagen se muestren varias opciones y entre ellas guardar. Otra opción, es manteniendo pulsado y que se guarde automáticamente. Simplemente, elige la opción que te guste y copia y pega el código anterior en ella.

Ejemplo – Guarda una imagen manteniendo pulsado

¿Ya sabes cómo guardar una imagen en Android Studio? No dudes en preguntarnos en los comentarios.

Compartir
Artículo anteriorCómo usar AlertDialog en Android Studio
Artículo siguiente¿Qué son las ROMs?
CEO de ASF. Ingeniera Informática de Software. Me apasionan las nuevas tecnologías, Android, desarrollo de apps, blogs, smartphones, smartwatches, wearables... ¡Tengo todos los Nexus de Google y cientos de gadgets increíbles! Mi MacBook Air, Nexus 6P y LG G Watch no podrían faltarme nunca. Siempre AA.

5 Comentarios

  1. Hola, me gustaría saber como podria guardar las imagenes directamente en la Raiz C o en una carpeta que no requiera acceso root?

  2. Hola buenos días, me gustaría saber como guardar las imágenes u otros archivos en una carpeta de la memoria interna del teléfono que no sea la de la app, es decir una carpeta permanente, como por ejemplo la de Downloads.

  3. Hola, no me guarda la imagen, me muestra: ¡No se ha podido guardar la imagen!
    Estaría muy agradecido por su ayuda.

    Adjunto código:

    public void onClickDescargar(View view) {
    foto.buildDrawingCache();
    Bitmap bm=foto.getDrawingCache();

    String file_path = Environment.getExternalStorageDirectory().getAbsolutePath() + NameOfFolder;
    String CurrentDateAndTime = getCurrentDateAndTime();
    File dir = new File(file_path);

    if (!dir.exists()) {
    dir.mkdirs();
    }

    File file = new File(dir, NameOfFile + CurrentDateAndTime + “.jpg”);

    try {
    FileOutputStream fOut = new FileOutputStream(file);

    bm.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
    fOut.flush();
    fOut.close();
    MakeSureFileWasCreatedThenMakeAvabile(file);
    AbleToSave();
    }

    catch(FileNotFoundException e) {
    UnableToSave();
    }
    catch(IOException e) {
    UnableToSave();
    }

    }

    private void MakeSureFileWasCreatedThenMakeAvabile(File file){
    MediaScannerConnection.scanFile(this,
    new String[] { file.toString() } , null,
    new MediaScannerConnection.OnScanCompletedListener() {

    public void onScanCompleted(String path, Uri uri) {
    }
    });
    }

    private void UnableToSave() {
    Toast.makeText(this, “¡No se ha podido guardar la imagen!”, Toast.LENGTH_SHORT).show();
    }

    private void AbleToSave() {
    Toast.makeText(this, “Imagen guardada en la galeria.”, Toast.LENGTH_SHORT).show();
    }

  4. Buenos tardes, Gracias por la ayuda…

    mi problema es que la imagen no aparece en la aplicación Galeria, la imagen se almacena correctamente en la ruta que es, pero cuando trato de visualizarla desde Galería no aparece el folder con la imagen y pues para que aparezca tengo que reiniciar el celular y pues no se a que se deba… ya intente con otros celulares y pasa igual..

    y el directorio lo estoy declarando publico para que otras aplicaciones puedan acceder a las imágenes….

Dejar respuesta

Adivina adivinanza *