Android-Как я могу сохранить полную фотографию с пользовательским именем? - PullRequest
0 голосов
/ 12 октября 2019

Я сохраняю полноразмерное фото в соответствии с документацией. https://developer.android.com/training/camera/photobasics#TaskPath

private File createImageFile() throws IOException {
    // Create an image file name
    File storageDir = getExternalFilesDir("TestImageCapture");
    String timeStamp = new SimpleDateFormat("yyyyMMdd").format(new Date());
    String imageFileName = "JPEG_" + timeStamp + "_";
    File image = File.createTempFile(
            imageFileName,  /* prefix */
            ".jpg",         /* suffix */
            storageDir      /* directory */
    );
    String currentPhotoPath = image.getAbsolutePath();
    return image;
}

Согласно моему коду, он должен сохранить изображение с именем: JPEG_20191012_.jpg, но его сохранение JPEG_20191012_200766502860978687.jpg Почему я получаю этот длинный номер в конце. Как от этого избавиться?

Ответы [ 2 ]

1 голос
/ 12 октября 2019

Попробуйте этот метод, он будет работать не только по имени файла, но также по дате и времени захвата изображения.

private File createImageFile() throws IOException {
    // Create an image file name

    String timeStamp = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss").format(new 
    Date());
    String imageFileName = "Service IN:" + timeStamp + "_";
    File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
    File image = File.createTempFile(
            imageFileName,  /* prefix */
            ".jpg",         /* suffix */
            storageDir      /* directory */
    );

    // Save a file: path for use with ACTION_VIEW intents
    mCurrentPhotoPath = image.getAbsolutePath();
    return image;
}
1 голос
/ 12 октября 2019

Вы можете попробовать это

 File file = new File(storageDir.getAbsolutePath()+ imageFileName+ ".jpg");
   try {
          file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
...