El objetivo es iniciar la aplicacin de fotos y obtener el resultado, lo que corresponde a una llamada al
mtodo startActivityForResult.
Por lo tanto, puede utilizar las siguientes lneas de cdigo para llamar a la aplicacin de fotos del
dispositivo.
startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE),
IMAGE_CAPTURE);
Lo que dar:
Una vez se ha capturado la foto, el usuario la podr validar, volver a capturar o cancelar la captura de
fotos.
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == IMAGE_CAPTURE) {
if (data != null) {
Bitmap picture =
data.getParcelableExtra("data");
if (picture != null) {
//Realizar el tratamiento con la imagen
}
}
}
}
Este mtodo le permite obtener nicamente la vista previa de la imagen. Si desea obtener la foto
completa, debe modificar las caractersticas especficas del intent usado en la llamada al
mtodostartActivityForResult.
El objetivo es especificar la URI del archivo usado para almacenar la imagen y aadirla a los extras del
intent (clave MediaStore.EXTRA_OUTPUT).
if
(context.getPackageManager().hasSystemFeature(PackageManager.
FEATURE_CAMERA)){
// Este dispositivo tiene cmara
} else {
// Este dispositivo no tiene cmara
}
2. Controlar la cmara
Tambin puede tomar, directamente, el control de la cmara, configurarla, registrar un vdeo o
capturar una imagen sin pasar por otra aplicacin. Este mtodo requiere una permission.
<uses-permission android:name="android.permission.CAMERA"/>
camera.release();
Una cmara tiene varios parmetros modificables (focus, flash, zoom), son accesibles mediante la
clase Parameters (subclase de Camera).
3. Grabar un vdeo
Tambin puede grabar vdeos de dos formas distintas:
La grabacin de vdeo requiere el uso de la clase MediaRecorder. sta permite especificar varias
caractersticas de la grabacin de vdeo:
camera.unlock();
mediaRecorder.setCamera(camera);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.
QUALITY_HIGH));
mediaRecorder.setOutputFile(getOutputMediaFile(MEDIA_TYPE_VIDEO).
toString());
mediaRecorder.setPreviewDisplay(preview.getHolder().getSurface());
mediaRecorder.prepare();
Comenzar la grabacin.
mediaRecorder.start();
mMediaRecorder.release();
camera.release();