Android 将图像存储到SD卡

Android 将图像存储到SD卡,android,android-imageview,android-sdcard,android-image,Android,Android Imageview,Android Sdcard,Android Image,我在android应用程序中使用了裁剪功能,效果很好,但我想将裁剪后的图像保存到我的SD卡上。为此,需要遵循哪些步骤?如果您裁剪的位图被称为您的位图 File sdcard = Environment.getExternalStorageDirectory(); File f = new File (sdcard, "filename.png"); FileOutputStream out = new FileOutputStream(f); yourBitmap.compress(Bitmap

我在android应用程序中使用了裁剪功能,效果很好,但我想将裁剪后的图像保存到我的
SD卡上。为此,需要遵循哪些步骤?

如果您裁剪的
位图被称为
您的位图

File sdcard = Environment.getExternalStorageDirectory();
File f = new File (sdcard, "filename.png");
FileOutputStream out = new FileOutputStream(f);
yourBitmap.compress(Bitmap.CompressFormat.PNG, 90, out)
试试这个:

public void saveBitmap(Bitmap bmp)
{
    String file_path = Environment.getExternalStorageDirectory().getAbsolutePath() + 
                                "/NewFolder";
        File dir = new File(file_path);
        if(!dir.exists)
           dir.mkdirs();
        File file = new File(dir, "myImage.png");
        FileOutputStream fOut = new FileOutputStream(file);

        bmp.compress(Bitmap.CompressFormat.PNG, 85, fOut);
        fOut.flush();
        fOut.close();
}
清单文件中需要以下权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  


谢谢。

首先,在SD卡中获取图像存储:-

public static String storeImage(Bitmap bitmap, String filename) {

        String stored = null;

        File sdcard = Environment.getExternalStorageDirectory();
        File file = new File(sdcard, filename + ".png");

        if (file.exists())
            file.delete();

        try {
            FileOutputStream out = new FileOutputStream(file);
            bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
            out.flush();
            out.close();
            stored = "success";
        } catch (Exception e) {
            e.printStackTrace();
        }
        return stored;
    }
第二次从SD卡获取图像:-

public static File getImage(String imagename) {

        File mediaImage = null;
        try {
            String root = Environment.getExternalStorageDirectory().toString();
            File myDir = new File(root);
            if (!myDir.exists())
                return null;

            mediaImage = new File(myDir.getPath() + imagename);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return mediaImage;
    }
3将图像从SD卡转换为位图

File file = CommonUtils.getImage("/CoverPic.png");

                String path = file.getAbsolutePath();

                if (path != null)
                    picture = BitmapFactory.decodeFile(path);

尝试一下下面的链接,请按照下面的教程操作。这就是你想要的。您还可以通过intent发送浏览的图像进行裁剪。你在这方面也有更好的例子。我尝试了这个链接,它会裁剪图像bt不要将图像存储到SD卡。你只需要从这些教程中获取位图或URI,并保存在你首选的位置。。这段代码将创建一个png文件。pathToStore必须指向sdcard@MonalGodiwala那是什么?我的解决方案是错误的还是现在不起作用?@MonalGodiwala你先接受,然后拒绝,所以我猜这段代码中有任何问题。