Android Camera - Salve a imagem em uma nova pasta no cartão SD
Eu tenho um aplicativo muito simples, que no momento tira uma foto e salva a imagem. O problema no momento é que, por algum motivo, não consigo encontrar para onde a imagem está sendo salva no telefon
O resultado final com o que estou tentando fazer é que, quando uma foto é tirada, a imagem é salva em uma nova pasta que foi criada no cartão SD, mas se a pasta ainda não existir, ela deverá ser criada ( automaticamente) antes que a imagem possa ser salv
Tentei usar a resposta nesta pergunta mas parece que não o é proporcional sem obter o erroimageIntent cannot be resolved
EDIT: Agora a imagem é salva no cartão SD e é criada uma pasta, mas substituindo a imagem visível. Preciso salvar várias imagens se alguém tiver algum código de sugestão atualizado
Este é um trecho do meu código:
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();
}};
EDITA
código foi atualizado para salvar várias imagens agora em uma nova pasta criada no cartão S