美文网首页Android开发重学Android
将Bitmap图片保存到手机本地

将Bitmap图片保存到手机本地

作者: 欢乐的乐 | 来源:发表于2017-06-15 14:04 被阅读434次

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

    权限

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

    创建文件夹

    先说明每一步的代码,最后会贴上完整的代码
    如果是直接将文件放在/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, ̄)/


    Potato_zero.jpg

    相关文章

      网友评论

        本文标题:将Bitmap图片保存到手机本地

        本文链接:https://www.haomeiwen.com/subject/ssnyqxtx.html