Cómo autofocus cámara Android automáticamente?
Quiero autofocus cámara Android tan pronto como la cámara se mantiene inmóvil. Estoy buscando tutoriales o muestras de cómo hacerlo o al menos una pequeña muestra que muestra qué clases puedo utilizar para gancho en tales eventos.
- Android - ¿Cómo puedo despertar el teléfono de un sueño duro para tomar una foto?
- Android obtener ruta de la foto sin tomar foto
- ¿Está com.android.camera.action.CROP no disponible para Android jelly bean 4.3?
- La vista previa de la cámara se bloquea después del bloqueo de la pantalla
- La cámara personalizada Android se bloquea en el curriculum vitae
- Android frente a frente de cámara tomando fotos invertidas
- Cámara Android, onPictureTaken (byte imgData, Cámara fotográfica) método & PictureCallback nunca llamado
- Ajuste ISO de la cámara / velocidad de obturación
- La previsualización en vivo de la cámara se congela en el interruptor de la cámara
- Cámara2 grabación de vídeo
- Android: detectar el brillo (cantidad de luz) en el entorno del teléfono con la cámara?
- No se pudo iniciar la función startPreview de la cámara
- Cómo devolver un mapa de bits con onPictureTaken en Android?
Para mí esto funcionó un lujo:
//set camera to continually auto-focus Camera.Parameters params = c.getParameters(); //*EDIT*//params.setFocusMode("continuous-picture"); //It is better to use defined constraints as opposed to String, thanks to AbdelHady params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); c.setParameters(params);
Intente utilizar Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO
o Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE
. Vea abajo:
Camera.Parameters params = camera.getParameters(); if (params.getSupportedFocusModes().contains( Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) { params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); } camera.setParameters(params);
Es importante comprobar si el teléfono es compatible con el modo elegido antes de intentar utilizarlo, de lo contrario setParameters()
lanzará una excepción de tiempo de ejecución. (El código de edición funciona correctamente)
El siguiente código funciona para mí.
Ajuste del enfoque automático (clase de vista previa):
Parameters params = camera.getParameters(); params.setFocusMode(Parameters.FOCUS_MODE_AUTO); //some more settings camera.setParameters(params);
Llamar a la cámara para tomar una fotografía en caso de que el autofoco esté listo (clase de actividad):
public void butClick(View v){ preview.camera.autoFocus(new AutoFocusCallback() { public void onAutoFocus(boolean success, Camera camera) { if(success){ camera.takePicture(shutterCallback, rawCallback, jpegCallback); } } }); }
Obtener imagen (clase de actividad):
PictureCallback jpegCallback = new PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { //do something } };
Parece que debe autofoco continuo como se discute aquí.
Hay una pregunta aquí que puede hacer referencia.
Usted puede intentar el código:
ShutterCallback _pfnShutterCallback = new ShutterCallback() { @Override public void onShutter() { // TODO Auto-generated method stub } }; PictureCallback _pfnRawPictureCallback = new PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { // TODO Auto-generated method stub } }; private AutoFocusCallback _pfnAutoFocusCallback = new AutoFocusCallback() { @Override public void onAutoFocus(boolean success, Camera camera) { // TODO Auto-generated method stub camera.autoFocus(null); camera.takePicture(_pfnShutterCallback, _pfnRawPictureCallback, mPicture); } }; private PictureCallback mPicture = new PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { new SavePhotoTask().execute(data); camera.startPreview(); } }; class SavePhotoTask extends AsyncTask<byte[], String, String> { // Process save file image }
Captura de llamada: mCamera.autoFocus(autoFocusCallback);
Puede consultar en: http://android-er.blogspot.com/2011/01/start-camera-auto-focusing-autofocus.html
Esto funciona perfectamente para la devolución de llamada de vista previa:
Camera.Parameters parameters = camera.getParameters(); if (parameters.getSupportedFocusModes().contains( Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) { parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); } camera.setParameters(parameters);
- ¿Cómo puedo crear un Spinner de Android como una ventana emergente?
- Desliza hacia atrás como Pinterest o Tumblr