将Bitmap图片保存到手机本地

具体步骤有一下几步:
1.权限
2.创建文件夹
3.创建文件
4.保存文件

权限



创建文件夹

先说明每一步的代码,最后会贴上完整的代码
如果是直接将文件放在/storage/sdcard1,这一步就可以跳过,

//保存到指定路径下/storage/sdcard1/potato
//File.separator 是默认分隔符 \
final String dir = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "potato" + File.separator;
//potato文件夹是不存在的所以必须提前创建
File folder = new File(dir);
if(!folder.exists()){
    folder.mkdir();
}

如果想详细了解一下Environment.getExternalStorageDirectory()可以看一下我的另一篇文章的开头有讲解 -> Android调用手机拍照并获得原图

注意

如果像QQ是/tencent/QQ_Image/里面存放照片,那么就要一层一层的创建文件夹,先创建tencent,再创建QQ_Image,否则会报错** open failed: ENOENT (No such file or directory)**

创建文件

File file = new File(dir + "summer" + ".jpg");
if(file.exists()){
    file.delete();
}
if(!file.exists()){
    file.createNewFile();//重点在这里
}

mkdir()是创建文件夹,createNewFile()创建文件。
如果使用的是mkdir()就会创建一个叫“summer.jpg”的文件夹

保存文件

FileOutputStream out = new FileOutputStream(file);
newBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
out.flush();
out.close();

Demo

final String dir = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "potato" + File.separator;
try {
    File folder = new File(dir);
    if(!folder.exists()){
        folder.mkdir();
    }
    File file = new File(dir + "summer" + ".jpg");
    if(file.exists()){
        file.delete();
    }
    if(!file.exists()){
        file.createNewFile();
    }
    FileOutputStream out = new FileOutputStream(file);
    newBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
    out.flush();
    out.close();
} catch (Exception e) {
    e.printStackTrace();
}

好好学习,天天向上。<( ̄oo, ̄)/


将Bitmap图片保存到手机本地_第1张图片
Potato_zero.jpg

你可能感兴趣的:(将Bitmap图片保存到手机本地)