Android—将Bitmap图片保存到SD卡目录下或者指定目录

直接上代码就不废话啦

一:保存到SD卡下

[java] view plain copy
 
  1. File file = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".jpg");  
  2.     try {  
  3.             out = new FileOutputStream(file);  
  4.             btImage.compress(Bitmap.CompressFormat.JPEG, 90, out);  
  5.             System.out.println("___________保存的__sd___下_______________________");  
  6.         } catch (FileNotFoundException e) {  
  7.             e.printStackTrace();  
  8.         }  
  9.         try {  
  10.             out.flush();  
  11.             out.close();  
  12.         } catch (IOException e) {  
  13.             e.printStackTrace();  
  14.         }  
  15.         Toast.makeText(HahItemActivity.this,"保存已经至"+Environment.getExternalStorageDirectory()+"下", Toast.LENGTH_SHORT).show();  
  16.      }  

上面的方法就是 直接定义一个文件的路径,和图片的名称,然后保存.

二:保存Bitmap到指定的SD卡文件夹目录下

想想也知道,这个必须先有个文件夹,才能把图片保存这里面,那就按照思路学代码吧

[java] view plain copy
 
  1. if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) // 判断是否可以对SDcard进行操作  
  2.              {    // 获取SDCard指定目录下  
  3.                  String  sdCardDir = Environment.getExternalStorageDirectory()+ "/CoolImage/";  
  4.                  File dirFile  = new File(sdCardDir);  //目录转化成文件夹  
  5.                  if (!dirFile .exists()) {              //如果不存在,那就建立这个文件夹  
  6.                     dirFile .mkdirs();  
  7.                      }                          //文件夹有啦,就可以保存图片啦              
  8.                  File file = new File(sdCardDir, System.currentTimeMillis()+".jpg");// 在SDcard的目录下创建图片文,以当前时间为其命名  
  9.       
  10.             try {  
  11.                 out = new FileOutputStream(file);  
  12.                 btImage.compress(Bitmap.CompressFormat.JPEG, 90, out);  
  13.                 System.out.println("_________保存到____sd______指定目录文件夹下____________________");  
  14.             } catch (FileNotFoundException e) {  
  15.                 e.printStackTrace();  
  16.             }  
  17.             try {  
  18.                 out.flush();  
  19.                 out.close();  
  20.             } catch (IOException e) {  
  21.                 e.printStackTrace();  
  22.             }  
  23.             Toast.makeText(HahItemActivity.this,"保存已经至"+Environment.getExternalStorageDirectory()+"/CoolImage/"+"目录文件夹下", Toast.LENGTH_SHORT).show();  
  24.          }  

注:访问权限注意哦

[java] view plain copy
 
  1. <!-- 安卓读写sd权限 -->  
  2.  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />  
  3.  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  4. t;uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>   



关于图片的  SD卡的 
未完   待续

[java] view plain copy
 
    1. //将Bitmap图片保存到sd卡  
    2.   
    3.    protected void saveBitmapToSD(Bitmap bt) {  
    4.        File path = Environment.getExternalStorageDirectory();  
    5.        File file = new File(path, System.currentTimeMillis() + ".jpg");  
    6.        System.out.println(Environment.getExternalStorageState() + "/Cool/" +"000000000000000000000000000");  
    7.        try {  
    8.            FileOutputStream  out = new FileOutputStream(file);  
    9.            bt.compress(Bitmap.CompressFormat.JPEG, 90, out);  
    10.        } catch (FileNotFoundException e) {  
    11.            e.printStackTrace();  
    12.        }  
    13.        out.flush();  
    14.        out.close();  
    15.    }  
    16.   
    17.    /** 
    18.     * 保存bitmap到SD卡 
    19.     * @param bitName 保存的名字 
    20.     * @param mBitmap 图片对像 
    21.     * return 生成压缩图片后的图片路径 
    22.     */  
    23.    public static String saveMyBitmap(String bitName,Bitmap mBitmap) {  
    24.        File f = new File("/sdcard/" + bitName + ".png");  
    25.        try {  
    26.            f.createNewFile();  
    27.        } catch (IOException e) {  
    28.            System.out.println("在保存图片时出错:" + e.toString());  
    29.        }  
    30.        FileOutputStream fOut = null;  
    31.        try {  
    32.            fOut = new FileOutputStream(f);  
    33.        } catch (FileNotFoundException e) {  
    34.            e.printStackTrace();  
    35.        }  
    36.        try {  
    37.            mBitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut);  
    38.        } catch (Exception e) {  
    39.            return "create_bitmap_error";  
    40.        }  
    41.        try {  
    42.            fOut.flush();  
    43.        } catch (IOException e) {  
    44.            e.printStackTrace();  
    45.        }  
    46.        try {  
    47.            fOut.close();  
    48.        } catch (IOException e) {  
    49.            e.printStackTrace();  
    50.        }  
    51.   
    52.        return "/sdcard/" + bitName + ".png";  
    53.    }  
    54.   
    55.    /** 
    56.     * 保存bitmap到SD卡 
    57.     * @param bitmap 
    58.     * @param imagename 
    59.     */  
    60.    public static String saveBitmapToSDCard(Bitmap bitmap, String imagename) {  
    61.        String path = "/sdcard/" + "img-" + imagename + ".jpg";  
    62.        FileOutputStream fos = null;  
    63.        try {  
    64.            fos = new FileOutputStream(path);  
    65.            if (fos != null) {  
    66.                bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fos);  
    67.                fos.close();  
    68.            }  
    69.   
    70.            return path;  
    71.        } catch (Exception e) {  
    72.            e.printStackTrace();  
    73.        }  
    74.        return null;  
    75.    }    
原文地址:https://www.cnblogs.com/exmyth/p/8428456.html