Guardar imagen en tarjeta SD en Android

Guardar imagen en tarjeta SD en Android

En este tutorial, aprenderá cómo guardar una imagen en la tarjeta SD de su dispositivo interno. De manera predeterminada, las imágenes generalmente se almacenan en una tarjeta SD del dispositivo interno. Crearemos un menú de la barra de acción y, al hacer clic en el elemento del menú, se creará una carpeta y se guardará una imagen en la tarjeta SD del dispositivo interno. Vamos a empezar…

Cree un nuevo proyecto en Eclipse  File  >  New  >  Android Application Project. Complete los detalles y nombre su proyecto  SaveImageTutorial.

Nombre de la aplicación:  SaveImageTutorial

Nombre del proyecto:  SaveImageTutorial

Nombre del paquete:  com.androidbegin. guardarimagentutorial

Abra su  MainActivity .java  y pegue el siguiente código.

Actividad principal .java

paquete com.androidbegin.saveimagetutorial;

importar java.io.Archivo;
importar java.io.FileOutputStream;
importar java.io.OutputStream;
importar android.os.Bundle;
importar android.os.Environment;
importar android.app.ActionBar;
importar android.app.Actividad;
importar android.graphics.Bitmap;
importar android.graphics.BitmapFactory;
importar android.view.Menú;
importar android.view.MenuItem;
importar android.view.MenuItem.OnMenuItemClickListener;
importar android.widget.ImageView;
importar android.widget.Toast;

clase pública MainActivity extiende Actividad {

	@Anular
	public void onCreate (Paquete guardadoInstanceState) {
		super.onCreate(estadoDeInstanciaGuardado);
		// Obtener la vista de activity_main.xml
		setContentView(R.diseño.actividad_principal);

		// Crear una barra de acciones
		ActionBar actionBar = getActionBar();
		actionBar.show();

		// Localiza ImageView en activity_main.xml
		ImageView miimagen = (ImageView) findViewById(R.id.image);

		// Adjuntar imagen a ImageView
		miimagen.setImageResource(R.drawable.wallpaper);

	}

	@Anular
	public boolean onCreateOptionsMenu(Menú menú) {

		// Crear un menú de la barra de acciones
		menu.add("Guardar imagen")
				// Agregar un nuevo botón de menú
				.setOnMenuItemClickListener(this.SaveImageClickListener)
				.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

		volver super.onCreateOptionsMenu(menú);
	}

	// Captura el elemento del menú de la barra de acción, haga clic en
	OnMenuItemClickListener SaveImageClickListener = nuevo OnMenuItemClickListener() {

		onMenuItemClick público booleano (elemento MenuItem) {

			// TODO stub de método generado automáticamente

			mapa de bits mapa de bits;
			Salida de flujo de salida;

			// Recuperar la imagen de la carpeta res
			mapa de bits = BitmapFactory.decodeResource(getResources(),
					R.dibujable.fondo de pantalla);

			// Encuentra la ruta de la tarjeta SD
			Ruta del archivo = Environment.getExternalStorageDirectory();

			// Crear una nueva carpeta en la tarjeta SD
			Archivo dir = nuevo archivo (filepath.getAbsolutePath()
					+ "/Guardar tutorial de imagen/");
			dir.mkdirs();

			// Crea un nombre para la imagen guardada
			Archivo archivo = nuevo archivo (dir, "miimagen.png");

			// Mostrar un mensaje de brindis al guardar con éxito
			Toast.makeText(MainActivity.this, "Imagen guardada en la tarjeta SD",
					Tostadas.LENGTH_SHORT).show();
			intentar {

				salida = nuevo FileOutputStream(archivo);

				// Comprimir en imagen de formato png de 0% - 100%
				bitmap.compress(Bitmap.CompressFormat.PNG, 100, salida);
				salida.flush();
				salida.cerrar();
			}

			captura (Excepción e) {
				// TODO Bloque catch generado automáticamente
				e.printStackTrace();
			}
			falso retorno;
		}
	};
}

Hemos creado un ImageView para mostrar la imagen adjunta en el diseño gráfico y un menú de barra de acción. Al hacer clic en el elemento del menú de la barra de acción, se guardará la imagen especificada en la tarjeta SD interna.

Hemos preparado una imagen de muestra para este tutorial. Inserte su imagen de muestra descargada en su  res  >  drawable-hdpi.

Imagen de muestra

[etiqueta wpfilebase = ID de archivo = 78 tpl = botón de descarga /]

A continuación, cree un archivo XML para su  diseño gráfico de MainActivity  . Vaya a  res  >  diseño  > Haga clic con el botón derecho en el  diseño  >  Nuevo  > Archivo XML de Android

Nombre su nuevo archivo XML  activity_main.xml  y pegue el siguiente código.

actividad_principal .xml

<RelativeLayout xmlns_android="http://schemas.android.com/apk/res/android"
    xmlns_herramientas="http://esquemas.android.com/herramientas"
    android_layout_width="fill_parent"
    android_layout_height="fill_parent" >

    <ImagenVista
        android_id="@+id/imagen"
        android_layout_width="wrap_content"
        android_layout_height="wrap_content" />

</RelativeLayout>

A continuación, cambie el nombre de la aplicación. Abra su  strings.xml  en su carpeta  res > valores  y pegue el siguiente código.

cadenas.xml

<recursos>

    <string name="app_name">Guardar tutorial de imagen</string>
    <string name="menu_settings">Configuración</string>

</recursos>

En su  AndroidManifest.xml , debemos declarar un permiso para permitir que la aplicación escriba un almacenamiento externo. Abra su  AndroidManifest.xml  y pegue el siguiente código.

Manifiesto de Android. xml

<manifiesto xmlns_android="http://schemas.android.com/apk/res/android"
    paquete="com.androidbegin.saveimagetutorial"
    android_versionCode="1"
    android_versionName="1.0" >

    <usos-sdk
        android_minSdkVersion="11"
        android_targetSdkVersion="15" />

    <usos-permiso android_name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <aplicación
        android_icono="@dibujable/ic_launcher"
        android_etiqueta="@cadena/nombre_aplicación"
        android_tema="@estilo/AppTheme" >
        <actividad
            android_nombre=".Actividad principal"
            android_uiOptions="splitActionBarWhenNarrow" >
            <intent-filter>
                <acción android_name="android.intent.action.MAIN" />

                <categoría android_name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </actividad>
    </aplicación>

</manifiesto>

Producción:

Guardar capturas de pantalla del tutorial de imagen

Código fuente 

[purchase_link id=”7829″ text=”Comprar para descargar el código fuente” style=”button” color=”green”]