primo luogo, è necessario ottenere il vostro bitmap. Si può già avere come un Bitmap oggetto, oppure si può cercare di ottenere dalla ImageView come ad esempio:
BitmapDrawable drawable = (BitmapDrawable) mImageView1.getDrawable();
Bitmap bitmap = drawable.getBitmap();
Quindi è necessario arrivare a directory (un oggetto File) dalla scheda SD come ad esempio:
File sdCardDirectory = Environment.getExternalStorageDirectory();
Successivamente, creare il file specifico per l'archiviazione delle immagini:
File image = new File(sdCardDirectory, "test.png");
Dopo di che, basta scrivere il bitmap grazie al suo metodo di compress quali:
boolean success = false;
// Encode the file as a PNG image.
FileOutputStream outStream;
try {
outStream = new FileOutputStream(image);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
/* 100 to keep full quality of the image */
outStream.flush();
outStream.close();
success = true;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Infine, basta gestire il risultato booleano se necessario. Come ad esempio:
if (success) {
Toast.makeText(getApplicationContext(), "Image saved with success",
Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(),
"Error during image saving", Toast.LENGTH_LONG).show();
}
Non dimenticare di aggiungere la seguente autorizzazione vostro manifesto:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Ci sono un sacco di risposte alla tua domanda, l'uso di ricerca in primo luogo! http://stackoverflow.com/questions/4875114/android-save-image-from-url-onto-sd-card –