zoukankan      html  css  js  c++  java
  • 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.    }    
  • 相关阅读:
    【Leetcode】【Easy】Remove Duplicates from Sorted List
    【Leetcode】【Easy】Pascal's Triangle II
    【Leetcode】【Easy】Pascal's Triangle
    【Leetcode】【Easy】Binary Tree Level Order Traversal II
    【Leetcode】【Easy】Binary Tree Level Order Traversal
    【Leetcode】【Easy】Maximum Depth of Binary Tree
    【Leetcode】【Easy】Minimum Depth of Binary Tree
    【Leetcode】【Easy】Balanced Binary Tree
    【Leetcode】【Easy】Symmetric Tree
    如何使用Action.Invoke()触发一个Storyboard
  • 原文地址:https://www.cnblogs.com/exmyth/p/8428456.html
Copyright © 2011-2022 走看看