Save image to sdcard from drawable resource on Android

android, android-button, android-image, drawable, sd-card

Solution

The process of saving a file (which is image in your case) is described here: save-file-to-sd-card

Saving image to sdcard from drawble resource:

Say you have an image namely ic_launcher in your drawable. Then get a bitmap object from this image like:

Bitmap bm = BitmapFactory.decodeResource( getResources(), R.drawable.ic_launcher);

The path to SD Card can be retrieved using:

String extStorageDirectory = Environment.getExternalStorageDirectory().toString();

Then save to sdcard on button click using:

File file = new File(extStorageDirectory, "ic_launcher.PNG");
    FileOutputStream outStream = new FileOutputStream(file);
    bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
    outStream.flush();
    outStream.close();

Don't forget to add `android.permission.WRITE_EXTERNAL_STORAGE` permission.

Here is the modified file for saving from drawable: SaveToSd , a complete sample project: SaveImage

Problem

I'm wondering how to save an image to user's sdcard through a button click. Could some one show me how to do it. The Image is in .png format and it is stored in the drawable directory. I want to program a button to save that image to the user's sdcard.

Original source

Related problems