您好我正在制作一个应用程序,我使用我创建的相机应用程序制作照片,然后将这些图像存储在特定文件夹(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);
}
}
答案 0 :(得分:0)
您可以设置Shared Preference来维护图片计数器。
答案 1 :(得分:0)
听起来像是在关闭应用程序时将最后一个数字存储在首选项文件中的理想情况。
在oncreate中,您可以从设置文件中加载最后一个数字
SharedPreferences settings = getSharedPreferences("settings", 0);
int n = settings.getInteger("lastNumber", 0);
并在onStop
SharedPreferences settings = getSharedPreferences("settings", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInteger("lastNumber", n);
// Commit the edits!
editor.commit();
了解更多信息:http://developer.android.com/guide/topics/data/data-storage.html#pref
答案 2 :(得分:0)
将imgCounter
变量保存为首选项,并在启动活动时加载它。