Android: guarda la imagen de la URL en la tarjeta SD

Quiero guardar una imagen de una URL en la tarjeta SD (para uso futuro) y luego cargar esa imagen desde la tarjeta SD para usarla como una superposición dibujable para los mapas de Google.

Aquí está la sección de guardar de la función:

//SAVE TO FILE

String filepath = Environment.getExternalStorageDirectory().getAbsolutePath(); 
String extraPath = "/Map-"+RowNumber+"-"+ColNumber+".png";
filepath += extraPath;

FileOutputStream fos = null;
fos = new FileOutputStream(filepath); 

bmImg.compress(CompressFormat.PNG, 75, fos);

//LOAD IMAGE FROM FILE
Drawable d = Drawable.createFromPath(filepath);
return d;

La imagen se guarda con éxito en la tarjeta SD pero falla al llegar a lacreateFromPath() línea. No entiendo por qué se guardaría bien en ese destino, pero no se cargaría desde él ...

Respuestas a la pregunta(7)

Su respuesta a la pregunta