Android 更改存储图像的名称

Android 更改存储图像的名称,android,image,store,Android,Image,Store,嗨,我正在制作一个应用程序,其中我使用我创建的相机应用程序制作照片,然后将这些图像存储在一个特定的文件夹PFC_Gallery中。我的问题是,我不知道如何在不覆盖以前的图像的情况下更改存储的图像的名称。我尝试使用一个变量imgCounter,该变量会在每次制作照片时递增,如下面代码中所示,但当我关闭应用程序时,该变量会从0重新启动,并覆盖其他照片。如果有人知道这个问题的任何解决方案,这将是非常有帮助的 public static int imgCounter = 0; @Override pu

嗨,我正在制作一个应用程序,其中我使用我创建的相机应用程序制作照片,然后将这些图像存储在一个特定的文件夹PFC_Gallery中。我的问题是,我不知道如何在不覆盖以前的图像的情况下更改存储的图像的名称。我尝试使用一个变量imgCounter,该变量会在每次制作照片时递增,如下面代码中所示,但当我关闭应用程序时,该变量会从0重新启动,并覆盖其他照片。如果有人知道这个问题的任何解决方案,这将是非常有帮助的

public static int imgCounter = 0;

@Override
public void onPictureTaken(byte[] data, Camera camera) {

    File path = Environment
            .getExternalStoragePublicDirectory(("PFC_Gallery"));
    File file = new File(path, "IMG" + imgCounter + ".jpg");
    imgCounter++;

    try {
        path.mkdirs();
        OutputStream os = new FileOutputStream(file);
        os.write(data);
        os.close();

        MediaScannerConnection.scanFile(this,
                new String[] { file.toString() }, null,
                new MediaScannerConnection.OnScanCompletedListener() {
                    public void onScanCompleted(String path, Uri uri) {
                        Log.i("ExternalStorage", "Scanned " + path + ":");
                        Log.i("ExternalStorage", "-> uri=" + uri);
                    }
                });
    } catch (IOException e) {
        Log.w("ExternalStorage", "Error writing " + file, e);
    }

}

您可以设置a来维护图像计数器。

您可以设置a来维护图像计数器。

关闭应用程序时,将最后一个数字存储在首选项文件中似乎是一种理想的情况

在oncreate中,从设置文件加载最后一个数字

SharedPreferences settings = getSharedPreferences("settings", 0);
   int n = settings.getInteger("lastNumber", 0);
在顶部

SharedPreferences settings = getSharedPreferences("settings", 0);
  SharedPreferences.Editor editor = settings.edit();
  editor.putInteger("lastNumber", n);

  // Commit the edits!
  editor.commit();

有关更多信息:

关闭应用程序时,将最后一个数字存储在首选项文件中似乎是一种理想的情况

在oncreate中,从设置文件加载最后一个数字

SharedPreferences settings = getSharedPreferences("settings", 0);
   int n = settings.getInteger("lastNumber", 0);
在顶部

SharedPreferences settings = getSharedPreferences("settings", 0);
  SharedPreferences.Editor editor = settings.edit();
  editor.putInteger("lastNumber", n);

  // Commit the edits!
  editor.commit();
有关详细信息:

将imgCounter变量保存为首选项,并在启动活动时加载。

将imgCounter变量保存为首选项,并在启动活动时加载