¿Cómo transfiero una imagen de su URL a la tarjeta SD?

¿Cómo puedo guardar imágenes en la tarjeta SD que recupero de la URL de la imagen?

Primero debe asegurarse de que su aplicación tenga permiso para escribir en la tarjeta SD. Para hacer esto, debe agregar el permiso de usos write storage externo en su archivo de manifiesto de aplicaciones. Consulte Configuración de permisos de Android

Luego puede descargar la URL a un archivo en la tarjeta SD. Una forma simple es:

URL url = new URL ("file://some/path/anImage.png"); InputStream input = url.openStream(); try { //The sdcard directory eg '/sdcard' can be used directly, or //more safely abstracted with getExternalStorageDirectory() File storagePath = Environment.getExternalStorageDirectory(); OutputStream output = new FileOutputStream (new File(storagePath,"myImage.png")); try { byte[] buffer = new byte[aReasonableSize]; int bytesRead = 0; while ((bytesRead = input.read(buffer, 0, buffer.length)) >= 0) { output.write(buffer, 0, bytesRead); } } finally { output.close(); } } finally { input.close(); } 

EDITAR: poner permiso en manifiesto

   

Un excelente ejemplo se puede encontrar en la última publicación en el blog del desarrollador de Android:

 static Bitmap downloadBitmap(String url) { final AndroidHttpClient client = AndroidHttpClient.newInstance("Android"); final HttpGet getRequest = new HttpGet(url); try { HttpResponse response = client.execute(getRequest); final int statusCode = response.getStatusLine().getStatusCode(); if (statusCode != HttpStatus.SC_OK) { Log.w("ImageDownloader", "Error " + statusCode + " while retrieving bitmap from " + url); return null; } final HttpEntity entity = response.getEntity(); if (entity != null) { InputStream inputStream = null; try { inputStream = entity.getContent(); final Bitmap bitmap = BitmapFactory.decodeStream(inputStream); return bitmap; } finally { if (inputStream != null) { inputStream.close(); } entity.consumeContent(); } } } catch (Exception e) { // Could provide a more explicit error message for IOException or // IllegalStateException getRequest.abort(); Log.w("ImageDownloader", "Error while retrieving bitmap from " + url, e.toString()); } finally { if (client != null) { client.close(); } } return null; }