Problème avec l'API camera
Bonjour,
J'ai quelque souci avec l'API camera de Android.
Pour commencer je ne sais pas comment faire pour que MediaStore.Images.Media.SIZE WIDTH et HEIGHT se mette automatiquement, ce qui fait que je suis obligé de mettre des valeurs qui ne sont pas bonnes.
De plus je voudrais avoir la possibilité de modifier le nom de la photo car lorsque elle s'enregistre elle a un un nom qui n'a aucun sens, et je voudrais pouvoir la traiter derrière.
Voici mon code lorsque l'on appuie sur le bouton pour prendre une photo :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| private void SavePicture() {
try {
SimpleDateFormat timeStampFormat = new SimpleDateFormat(
"yyyy-MM-dd-HH.mm.ss");
String fileName = "photo_" + timeStampFormat.format(new Date())
+ ".jpg";
// Metadata pour la photo
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, fileName);
values.put(MediaStore.Images.Media.DISPLAY_NAME, fileName);
values.put(MediaStore.Images.Media.DESCRIPTION, "Description.");
values.put(MediaStore.Images.Media.DATE_TAKEN, new Date().getTime());
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.Images.Media.SIZE, "1048576");
values.put(MediaStore.Images.Media.WIDTH, "1920");
values.put(MediaStore.Images.Media.HEIGHT, "1080");
// Support de stockage
Uri taken = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
values);
// Ouverture du flux pour la sauvegarde
stream = (FileOutputStream) getContentResolver().openOutputStream(
taken);
mCamera.takePicture(null, pictureCallback, pictureCallback);
} catch (Exception e) {
// TODO: handle exception
}
}
// Callback pour la prise de photo
Camera.PictureCallback pictureCallback = new Camera.PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
if (data != null) {
// Enregistrement de votre image
try {
if (stream != null) {
stream.write(data);
stream.flush();
stream.close();
}
} catch (Exception e) {
// TODO: handle exception
}
// Nous redémarrons la prévisualisation
camera.startPreview();
}
}
}; |
Merci à ceux ou celles qui prendront le temps de m'aider.