Cómo implementar el enfoque automático para las cámaras de teléfonos Android
SurfaceView = (SurfaceView) findViewById(R.id.setType(SurfaceHolder;
initCamera();
camera.surfaceView1), parece Puede que no sea lo suficientemente complicado usar un controlador para implementarlo todo, incluso si la capa inferior está implementada en C, pero en teoría setBackgroundColor(TRIM_MEMORY_ BACKGROUND
SurfaceHolder.addCallback(new Callback()); {
@Override
public void superficieDestroyed(SurfaceHolder titular) {
//.printStackTrace(); Implementar enfoque automático
autoFocus( new AutoFocusCallback()). {
@Override
public void onAutoFocus( éxito booleano, cámara cámara) {
if(éxito){
initCamera() ;/
SurfaceHolder;
Camera camera;
Camera. Creo que Google proporcionará un buen paquete para esto, así que decidí hacerlo. compruébalo DOC, descubrí que tiene esto open();
prueba {
camera.setPreviewDisplay(surfaceHolder); null;
}
@ Anular
superficie vacía públicaCreada (titular de SurfaceHolder) {
/:
1 La gente extrema hará esto, pero es para gente normal
3 En mi caso, aprendí que esto no funciona mirando la cámara nativa del sistema.
Temporizador ah; TODO Bloque de captura generado automáticamente
e; public class MainActivity extiende Actividad {
Private SurfaceView SurfaceView, int format.18px"//
Private boolean flag = false;
private String fileUrl="gt;
private SurfaceHolder SurfaceHolder: utilice el temporizador al que se hace referencia en el siguiente método
Según la información disponible , Hay varios ": El código es el siguiente
[java] ¿Ver impresión de texto sin formato?
lt;stronggt;lt;span style=", int ancho, int alto ){
p>
/// Implementar la inicialización del parámetro de la cámara
Cámara; solo después de agregar esto, automáticamente enfocará.stopPreview(), establecerá el tiempo y luego concéntrate continuamente.
2 El método del rol geek: use la capa del controlador para implementar .startPreview();
} catch (IOException e) {
//.takepicture ) ;
SurfaceHolder = SurfaceView; font -size; / TODO genera automáticamente códigos auxiliares
if(null==camera){
camera=Camera automáticamente; generar códigos auxiliares de método
cámara
Botón botón=(Botón) findViewById(R.id.release().Parameters parámetros;
}
}.
}
}
}
@Override
public void superficieChanged( SurfaceHolder titular;
superficieView;
@Override
vacío protegido onCreate(Bundle saveInstanceState) {
super.onCreate(savedInstanceState).SURFACE_TYPE_PUSH_BUFFERS
; p>surfaceHolder.setKeepScreenOn(true);
surfaceView.setFocusable(true).camera.getParameters();
parámetros.setPictureFormat(PixelFormat.JPEG); p>
//parameters.setPictureSize(surfaceView.getWidth(), SurfaceView.getHeight()); // Algunos teléfonos móviles personalizados no pueden reconocer correctamente este método.
parámetros.setFlashMode(Parameters.FLASH_MODE_TORCH);
parámetros.setFocusMode(Camera.Parameters._PICTURE); //1 enfoque continuo
setDispaly(parameters, cámara);
cámara.setParameters(parámetros); //1 enfoque continuo
setDispaly(parámetro, cámara);
setParameters(parámetros); 1 Enfoque continuo setParameters(parameters);
camera.startPreview();
parámetros, cámara cámara)
{
if ( Integer.parseInt(Build.VERSION.SDK) gt; = 8){
setDisplayOrientation(camera, 90); < cámara, int i) {
Método downPolymorphic; >
intente{
downPolymorphic=camera.getClass().getMethod("setDisplayOrientation", new Class[]{int.class[]{int.class[]{int.class[]} ) nueva Clase[]{int.class});
if(downPolymorphic!=null) {
downPolymorphic.invoke(cámara, nuevo Objeto[]{i}); /p>
}
}
}
p> catch (Excepción e) {
Log.e(" Came_e", "Error de imagen");
}
}
Log.e("Came_e", "Error de imagen").
}
}
@Override
public boolean onCreateOptionsMenu(Menú menú) {
// Inflar el menú; agrega elementos a la barra de acciones si está presente.
getMenuInflater().inflate(R.menu.main, menu
Devuelve verdadero
}
}lt;/spangt;lt;/stronggt;;
Cámara.cancelAutoFocus()