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

时间:2021-03-16 15:08:58

直接上代码就不废话啦

一:保存到SD卡下

  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卡文件夹目录下

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

  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. try {
  10. out = new FileOutputStream(file);
  11. btImage.compress(Bitmap.CompressFormat.JPEG, 90, out);
  12. System.out.println("_________保存到____sd______指定目录文件夹下____________________");
  13. } catch (FileNotFoundException e) {
  14. e.printStackTrace();
  15. }
  16. try {
  17. out.flush();
  18. out.close();
  19. } catch (IOException e) {
  20. e.printStackTrace();
  21. }
  22. Toast.makeText(HahItemActivity.this,"保存已经至"+Environment.getExternalStorageDirectory()+"/CoolImage/"+"目录文件夹下", Toast.LENGTH_SHORT).show();
  23. }

注:访问权限注意哦

  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卡的 
未完   待续

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