Trước tiên, bạn cần phải nhận được Bitmap của bạn. Bạn đã có thể có nó như một Bitmap đối tượng, hoặc bạn có thể thử để có được nó từ ImageView như:
BitmapDrawable drawable = (BitmapDrawable) mImageView1.getDrawable();
Bitmap bitmap = drawable.getBitmap();
Sau đó, bạn phải có được vào thư mục (một đối tượng File) từ thẻ nhớ SD như:
File sdCardDirectory = Environment.getExternalStorageDirectory();
Tiếp theo, tạo tập tin cụ thể của bạn để lưu trữ hình ảnh:
File image = new File(sdCardDirectory, "test.png");
Sau đó, bạn chỉ cần phải viết nhờ Bitmap phương pháp của nó compress như:
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();
}
Cuối cùng, chỉ cần xử lý kết quả boolean nếu cần. Chẳng hạn như:
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();
}
Đừng quên thêm quyền sau đây trong Manifest của bạn:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Có rất nhiều câu trả lời cho câu hỏi của bạn, sử dụng tìm kiếm đầu tiên! http://stackoverflow.com/questions/4875114/android-save-image-from-url-onto-sd-card –