Android 实现将Bitmap 保存到本地

所属分类: 软件编程 / Android 阅读数: 79
收藏 0 赞 0 分享

Overview

图片是一个可以使你程序变得比较的美观,所以我们会在我们的软件中使用图片。但是对于图片的操作也是比较的复杂。今天,我们学习一下如是将我们的图片保存到我们的本地。

开发环境

Android Studio 3.6

Android 11

Mac OS 10.15

模拟机 Google Pixel3 API R

然后学习一下如何来完成我们的功能

按照国际惯例,我们先来看一下我们的代码:

/**
 * Bitmap 帮助类之一
 */
class BitmapUtils {

  /**
   * Save Bitmap
   *
   * @param name file name
   * @param bm  picture to save
   */
  static void saveBitmap(String name, Bitmap bm, Context mContext) {
    Log.d("Save Bitmap", "Ready to save picture");
    //指定我们想要存储文件的地址
    String TargetPath = mContext.getFilesDir() + "/images/";
    Log.d("Save Bitmap", "Save Path=" + TargetPath);
    //判断指定文件夹的路径是否存在
    if (!FileUtils.fileIsExist(TargetPath)) {
      Log.d("Save Bitmap", "TargetPath isn't exist");
    } else {
      //如果指定文件夹创建成功,那么我们则需要进行图片存储操作
      File saveFile = new File(TargetPath, name);

      try {
        FileOutputStream saveImgOut = new FileOutputStream(saveFile);
        // compress - 压缩的意思
        bm.compress(Bitmap.CompressFormat.JPEG, 80, saveImgOut);
        //存储完成后需要清除相关的进程
        saveImgOut.flush();
        saveImgOut.close();
        Log.d("Save Bitmap", "The picture is save to your phone!");
      } catch (IOException ex) {
        ex.printStackTrace();
      }
    }
  }

}

这样我们的写入方法就完成了,比较的简单的。

首相,我们需要获取我们的软件的根目录。我们可以使用Context.getFilesDir()来获取到软件的根目录,并且我需要保存到我们的images文件下方。

这样获取了我么的存储路径然后我们的需要判断是不是首次使用,或者是该目录是否存在,然后我们看一下如何来判断我们的文件存在方法。

看一下源代码:

class FileUtils {
  /**
   * 判断指定目录的文件夹是否存在,如果不存在则需要创建新的文件夹
   * @param fileName 指定目录
   * @return 返回创建结果 TRUE or FALSE
   */
  static boolean fileIsExist(String fileName)
  {
    //传入指定的路径,然后判断路径是否存在
    File file=new File(fileName);
    if (file.exists())
      return true;
    else{
      //file.mkdirs() 创建文件夹的意思
      return file.mkdirs();
    }
  }
}

我们在这个方法中传入指定的存储路径,然后判断是否存在,如果存在我们需要创建我们的指定目录,然后返回我们的创建结果。这样我们的对目录的操作就基本完成了。

完成对目录的操作,我们在看下如何完成我们的存储过程,我们需要创建一个FileOutputStream 来用于图片的写入,并且我们需要对图片进行相对应的压缩操作。

并且我们的在最后需要清除我们相关的方法,这样我们的地Bitmap的操作就基本完成了。比较简单。

以上这篇Android 实现将Bitmap 保存到本地就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

Android网络编程之获取网络上的Json数据实例

这篇文章主要介绍了Android网络编程之获取网络上的Json数据实例,本文用完整的代码实例讲解了在Android中读取网络中Json数据的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中的windowSoftInputMode属性详解

这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下
收藏 0 赞 0 分享

Android网络编程之UDP通信模型实例

这篇文章主要介绍了Android网络编程之UDP通信模型实例,本文给出了服务端代码和客户端代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中使用ListView实现漂亮的表格效果

这篇文章主要介绍了Android中使用ListView实现漂亮的表格效果,本文用详细的代码实例创建了一个股票行情表格,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中刷新界面的二种方法

这篇文章主要介绍了Android中刷新界面的二种方法,本文使用Handler、postInvalidate两种方法实现界面刷新,需要的朋友可以参考下
收藏 0 赞 0 分享

Android SDK三种更新失败及其解决方法

这篇文章主要介绍了Android SDK三种更新失败及其解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(一)

Android3.0(API level 11)开始,Android设备不再需要专门的菜单键。随着这种变化,Android app应该取消对传统6项菜单的依赖。取而代之的是提供anction bar来提供基本的用户功能
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(二)

这次将继续上一篇文章没有讲完的Menu的学习,上下文菜单(Context menu)和弹出菜单(Popup menu)
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(三)

今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习,需要的朋友可以参考下
收藏 0 赞 0 分享

Android显示网络图片实例

这篇文章主要介绍了Android显示网络图片的方法,以实例形式展示了Android程序显示网络图片的方法,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多