Android Lab Test : La prévisualisation de la caméra (français)
Vidéo de tutoriel sur Youtube : https://www.youtube.com/playlist?list=PLL2Z3bzdO25yHwIV3XdMzKs61At0Ldh6L
Visitez http://www.AndroidLabTest.com
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
Android Lab Test : La prévisualisation de la caméra (français)
1. Développer sur Android
Android Lab Test
www.AndroidLabTest.com
Facebook
Par Bruno Delb
www.youtube.com/androidlabtest
www.twitter.com/brunodelb | www.facebook.com/brunodelb | blog.brunodelb.com
www.facebook.com/Androidlabtest
Youtube
Siteofficiel
Leçon : La caméra, la prévisualisation
2. La caméra, la prévisualisation
• Dans cette leçon, vous allez apprendre à contrôler la
prévisualisation de la caméra.
• Pour cela, vous allez utiliser les classes Camera et
SurfaceView.
3. La caméra, la prévisualisation
• Ouvrez la caméra puis attachez la caméra au SurfaceHolder avec la méthode
setPreviewDisplay().
Camera camera = Camera.open();
camera.setPreviewDisplay(surfaceHolder);
• En cas de changement (orientation, …), changez la taille de prévisualisation avec la
méthode setPreviewSize() et réactivez l’affichage avec la méthode startPreview().
Camera.Parameters parameters = camera.getParameters();
parameters.setPreviewSize(w, h);
camera.setParameters(parameters);
camera.startPreview();
• A la fin, arrêtez l’affichage avec la méthode stopPreview().
camera.stopPreview();
4. La caméra, la prévisualisation
• Créez un SurfaceHolder étendant SurfaceView et implémentant
Callback.
class Preview extends SurfaceView implements SurfaceHolder.Callback
• Récupérez une référence au holder avec la méthode getHolder().
SurfaceHolder surfaceHolder = getHolder();
• Sélectionnez le type de buffer par push
SURFACE_TYPE_PUSH_BUFFERS avec la méthode setType().
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
5. La caméra, la prévisualisation
• Créez les callback surfaceCreated(), surfaceDestroyed() et
surfaceChanged().
surfaceHolder.addCallback(this);
public void surfaceCreated(SurfaceHolder holder) { /* setPreviewDisplay */ }
public void surfaceDestroyed(SurfaceHolder holder) { /* stopPreview */ }
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
// setPreviewSize et startPreview
}
9. Fichier Preview.java
public void surfaceCreated(SurfaceHolder surfaceHolder) {
camera = Camera.open();
try {
camera.setPreviewDisplay(surfaceHolder);
} catch (IOException e) {
}
}
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
camera.stopPreview();
camera = null;
}
10. Fichier Preview.java
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
Camera.Parameters parameters = camera.getParameters();
parameters.setPreviewSize(w, h);
camera.setParameters(parameters);
camera.startPreview();
}
}
13. Retrouvez-moi sur ma chaîne AndroidLabTest …
Sur ma chaîne Youtube
https://www.youtube.com/user/mobiledevlabtest
Qui suis-je ?
Bruno Delb,
auteur du 1er livre francophone de développement d’application Java sur mobile (2002),
développeur d’applications mobiles & sociales,
parlez-moi de vos projets.
Et bien sûr sur mon site Web :
http://blog.brunodelb.com