Изменить имя сохраненных изображений - PullRequest
2 голосов
/ 03 мая 2011

Привет, я делаю приложение, в котором я делаю фотографии с помощью приложения камеры, которое я создал, и затем я сохраняю эти изображения в определенной папке (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);
    }

}

Ответы [ 3 ]

0 голосов
/ 03 мая 2011

Звучит как идеальная ситуация для сохранения последнего номера в файле настроек при закрытии приложения.

При создании вы загружаете последний номер из файла настроек

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

0 голосов
/ 03 мая 2011

Сохраните переменную imgCounter в качестве предпочтения и загрузите ее при запуске упражнения.

0 голосов
/ 03 мая 2011

Вы можете установить Общее предпочтение , чтобы сохранить счетчик изображений.

...