服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Android 实现将Bitmap 保存到本地

Android 实现将Bitmap 保存到本地

2022-11-30 14:59GreatCoder726 Android

这篇文章主要介绍了Android 实现将Bitmap 保存到本地,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Overview

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

开发环境

Android Studio 3.6

Android 11

Mac OS 10.15

模拟机 Google Pixel3 API R

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**
 * 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文件下方。

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

看一下源代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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 保存到本地就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/cao-1/p/12508456.html

延伸 · 阅读

精彩推荐