En Android, ¿cuál es realmente el uso para enfocar el parámetro de área de peso?
En la API de Android 14, se introdujo la posibilidad de enfocar con la cámara en un área específica. La API especifica que un peso puede ser suministrado, pero después de leer varias veces la descripción, todavía no puedo entender cómo usarlo y qué valor establecer, o bajo qué factores para deside el valor de peso a utilizar, podría alguien Por favor, explíqueme mejor cómo utilizar este parámetro cuando se trata de centrarse? Gracias
Cita de la ayuda del SDK
- Problema de enfoque con múltiples EditTexts
- Eclipse editText eliminar el foco (cursor) cuando se hace presionado
- Cómo borrar el enfoque de todos los elementos seleccionables en una vista?
- Desplazamiento en Horizontal ScrollView pierde el foco del elemento enfocado,
- Toque fuera de edittext para perder el foco
Cada área consiste en un rectángulo que especifica sus límites, y un peso que determina su importancia . Los límites son relativos al campo de visión actual de la cámara. Las coordenadas se asignan de manera que (-1000, -1000) es siempre la esquina superior izquierda del campo de visión actual y (1000, 1000) es siempre la esquina inferior derecha del campo de visión actual. No se permite establecer áreas con límites fuera de ese rango. Las áreas con ancho o altura cero o negativo no están permitidas. El peso debe ser de 1 a 1000, y representa un peso por cada píxel en el área. Esto significa que un área de medición grande con el mismo peso que un área más pequeña tendrá más efecto en el resultado de medición . Las áreas de medición pueden superponerse y el controlador agregará los pesos en la región de solapamiento.
- Mostrar el teclado automáticamente
- Editado Android enfoque automático
- Cómo forzar el enfoque para editar el texto
- Detener ScrollView de establecer el enfoque en EditText
- Grupo de radio no está recibiendo el foco en Android
- OnFocusChange no siempre funciona
- Cómo deshabilitar / modificar AutoFocus y AutoWhiteBalance en Android Camera usando OpenCV
- Manejo de enfoque personalizado de ViewGroup
Prueba esto:
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) public void setMeteringAndFocusArea (int x1, int y1, int x2, int y2, Camera camera){ Camera.Parameters camParam = camera.getParameters(); if (cameraParameters.getMaxNumMeteringAreas() > 0){ List<Camera.Area> areas = new ArrayList<Camera.Area>(); Rect areaRect = new Rect(x1, x2, y1, y2); areas.add(new Camera.Area(areaRect, 1000)); camParam.setMeteringAreas(areas); //You can use only Focus Areas if you don't care for metering. camParam.setFocusAreas(areas); camera.setParameters(camParam); } }
Y no te olvides de usar
Camera.autoFocus ();
Antes de tomar una foto, de lo contrario el setFocusAreas () no tendrá ningún efecto. Vea este enlace , publicado en esta pregunta para una buena implementación.