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 :
Merci à ceux ou celles qui prendront le temps de m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); } } };
Partager