Alors je ne développe pas sous Android, mais il parait que l’API officielle de l’appareil photo (Camera) est foireuse et très galère à implémenter dans une application. C’est pourquoi Dmitry Zaitsev a développé Fotoapparat, une bibliothèque libre qui permet d’utiliser l’appareil photo d’un téléphone Android sans se prendre la tête.
Voici comment prendre une photo avec FotoApparat :
Fotoapparat fotoapparat = Fotoapparat .with(context) .into(cameraView) .build();
fotoapparat.start();
fotoapparat .takePicture() .saveToFile(someFile);
Grâce à Fotoapparat, vous spécifiez quel type de photo vous voulez (résolution, activation du flash, mise au point…etc), vous lancez ou stoppez la preview et vous pouvez fournir à vos utilisateurs l’interface pour prendre la photo.
Par exemple pour activer ou stopper la preview :
@Override protected void onStart() { super.onStart();
fotoapparat.start();
}@Override protected void onStop() { super.onStop();
fotoapparat.stop();
}
Et pour sauver la photo en JPG et en BMP :
PhotoResult photoResult = fotoapparat.takePicture();
// save to file
photoResult.saveToFile(new File( getExternalFilesDir(« photos »), « photo.jpg » ));// obtain
Bitmap photoResult .toBitmap() .whenAvailable(bitmapPhoto -> { imageView.setImageBitmap(bitmapPhoto.bitmap);
De plus, il est possible de récupérer les images de la preview, d’utiliser la camera frontale, dorsale ou une camera extérieure et il y a des fonctionnalités de logs si vous voulez débugger.
Bref, c’est cool. Par contre, ça ne gère pas encore tout ce qui est vidé.