Во-первых, вам нужно получить растровое изображение. Вы уже можете иметь его в качестве объекта Bitmap, или вы можете попытаться получить его от ImageView
, таких как:
BitmapDrawable drawable = (BitmapDrawable) ImageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();
Тогда вы должны попасть в каталог (объект File) с SD-карты, такие как:
File sdCardDirectory = Environment.getExternalStorageDirectory();
Далее создайте отдельный файл для хранения изображений:
File image = new File(sdCardDirectory, "test.png");
После этого, вы просто должны написать Bitmap, такие как:
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();
}
Наконец, при необходимости обработайте булевский результат. Такие, как:
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();
}
Не забудьте добавить следующее разрешение в манифесте:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
О, спасибо, что то, что я искал! : D –