У меня есть очень простое приложение, которое в данный момент делает снимок, а затем сохраняет изображение. На данный момент проблема в том, что по какой-то причине я не могу найти, куда изображение сохраняется в телефоне.
Окончательный результат того, что я пытаюсь сделать, - это когда снимок сделан, изображение затем сохраняется в новую папку, созданную на SD-карте, но если папка еще не существует, она должна быть сделано (автоматически) перед сохранением изображения.
Я пытался использовать ответ в этом вопросе , но, похоже, не могу его воплотить, не получив сообщение об ошибке imageIntent cannot be resolved
РЕДАКТИРОВАТЬ: изображение теперь сохраняется на SD-карту и создает папку, но перезаписывает предыдущее изображение. Мне нужно, чтобы сохранить несколько изображений, если любое из них имеет какие-либо предложения, код был обновлен
Это фрагмент моего кода:
PictureCallback myPictureCallback_JPG = new PictureCallback(){
public void onPictureTaken(byte[] arg0, Camera arg1) {
// TODO Auto-generated method stub
/*Bitmap bitmapPicture
= BitmapFactory.decodeByteArray(arg0, 0, arg0.length); */
int imageNum = 0;
Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "Punch");
imagesFolder.mkdirs(); // <----
String fileName = "image_" + String.valueOf(imageNum) + ".jpg";
File output = new File(imagesFolder, fileName);
while (output.exists()){
imageNum++;
fileName = "image_" + String.valueOf(imageNum) + ".jpg";
output = new File(imagesFolder, fileName);
}
Uri uriSavedImage = Uri.fromFile(image);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
OutputStream imageFileOS;
try {
imageFileOS = getContentResolver().openOutputStream(uriSavedImage);
imageFileOS.write(arg0);
imageFileOS.flush();
imageFileOS.close();
Toast.makeText(AndroidCamera.this,
"Image saved: ",
Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
camera.startPreview();
}};
EDIT
Код был обновлен для сохранения нескольких изображений в новой папке, созданной на SD-карте.