AndroidはBitmapをローカルに保存することを実現します。


Overview
写真はあなたのプログラムをより美しくするため、私たちは私たちのソフトウェアの中で写真を使います。しかし、画像の操作もかなり複雑です。今日は私たちの写真を私たちのところに保存するように勉強します。
開発環境
Android Studio 3.6
Android 11
Mac OS 10.15
アナログマシンGoogle Pixel 3 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を現地に保存するということを実現しました。皆さんへのすべての内容を共有しています。参考にしていただければと思います。よろしくお願いします。