para mejor exposicion con celular camara bajar aplicacion android android-camera

exposicion - la mejor aplicacion de camara para android 2018



¿Cómo enfocar automáticamente la cámara de Android automáticamente? (6)

El siguiente código funciona para mí.

Configuración de enfoque automático (clase de vista previa):

Parameters params = camera.getParameters(); params.setFocusMode(Parameters.FOCUS_MODE_AUTO); //some more settings camera.setParameters(params);

Llame a la cámara para tomar una foto en caso de que el enfoque automático 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 foto (clase de actividad):

PictureCallback jpegCallback = new PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { //do something } };

Quiero enfocar automáticamente la cámara de Android tan pronto como la cámara se mantenga quieta. Estoy buscando tutoriales o muestras de cómo hacerlo o al menos una pequeña muestra que muestre qué clases puedo usar para engancharme en tales eventos.


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);


Intente usar 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 probar si el teléfono admite el modo elegido antes de intentar usarlo, de lo contrario, setParameters() generará una excepción de tiempo de ejecución. (Editar código ahora funciona correctamente)


Para mí esto funcionó un placer:

//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);



Puedes probar 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