我试图通过拍摄照片然后将其加载到我的应用程序中来保存图像。但我面临的问题是图片总是以不同的名字保存,所以我没有加载它。 (我检查了我的文件管理器,然后看到我用不同的名字保存的图片。)
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException ex) {
// Error occurred while creating the File
}
// Continue only if the File was successfully created
if (photoFile != null) {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
startActivityForResult(takePictureIntent, RESULT_TAKE_PHOTO);
}
}
private File createImageFile() throws IOException {
// Create an image file name
String imageFileName = "puzzle";
File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File image = File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
storageDir /* directory */
);
// Save a file: path for use with ACTION_VIEW intents
mCurrentPhotoPath = "file:" + image.getAbsolutePath();
return image;
}
我无法确定为什么它总是以不同的名字保存。
答案 0 :(得分:1)
我无法确定为什么它总是以不同的名字保存。
因为你告诉它using createTempFile()
。使用createTempFile()
后面的点是创建一个具有唯一文件名的File
。如果您不想使用唯一的文件名,请不要使用createTempFile()
。