Simple Camera es una biblioteca que te permite utilizar cámaras de una manera simplificada, fácil, rápida y efectiva. Contiene CameraX como biblioteca interna. Simplifica las funciones de la cámara utilizadas por CameraX y proporciona facilidad de uso con una única biblioteca. A medida que lleguen actualizaciones al lado de CameraX, la biblioteca intentará mantenerse actualizada. Las funciones que faltan se agregarán pronto. Como captura de video.
Para agregar/Características agregadas
Instalación inicial
Gradle
Añade los siguientes códigos al tuyo raíz build.gradle (no el archivo build.gradle del módulo).
todos los proyectos { repositorio { maven { url ‘https://jitpack.io’ } } }
Y agrega un código de dependencia al tuyo móduloconstruir.gradle.
dependencias {implementación ‘com.github.zekierciyas:SimpleCamera:1.0.0’ }
Uso
Agregue el siguiente espacio de nombres XML dentro de su archivo de diseño XML.
xmlns:app=”http://schemas.android.com/apk/res-auto”
Vista de cámara simple
Podemos usar SimpleCameraView con atributos personalizados.
Descripciones de atributos
Podemos personalizar la imagen de la paleta y el selector o varias opciones usando los siguientes atributos.
app:cameraID=”0″ // Lente frontal predeterminada app:cameraID=”1″ // Lente trasera predeterminada
Observadores
Los observadores se pueden utilizar como objetos separados como en el ejemplo. Se puede acceder desde el objeto de interfaz Observadores.
- Observers.CameraState es una observación común que proporciona observación general de la cámara. También se puede utilizar en otras funciones de la cámara.
private val observerCameraState: Observers.CameraState = object: Observers.CameraState { anular fun cameraState(simpleCameraState: SimpleCameraStateModel) { Log.d(TAG, “El estado de la cámara es ${simpleCameraState.action.toString()} “) cuando (simpleCameraState. acción) { es SimpleCameraState.Action.Closed -> { } es SimpleCameraState.Action.Closing -> { } es SimpleCameraState.Action.Open -> { } es SimpleCameraState.Action.Opening -> { } es SimpleCameraState.Action.Pending – > { } else -> { } } cuando (simpleCameraState.error) { es SimpleCameraState.Error.ErrorCameraDisabled -> { } es SimpleCameraState.Error.ErrorCameraFatalError -> { } es SimpleCameraState.Error.ErrorCameraInUse -> { } es SimpleCameraState Error. . ErrorDoNotDisturbModelEnabled -> { } es SimpleCameraState.Error.ErrorMaxCameraInUse -> { } es SimpleCameraState.Error.ErrorOtherRecoverableError -> { } es SimpleCameraState.Error.ErrorStreamConfig -> { } else -> { } } } }
- Observers.ImageAnalysis solo se puede utilizar durante la función de análisis de imágenes. Es un modelo de observador que devuelve resultados de análisis. Puede encontrar el uso simple por separado desde aquí.
val privado observerImageAnalysis: Observers.ImageAnalysis = objeto: Observers.ImageAnalysis { anular resultado divertido(mapa de bits: ¿mapa de bits?) { mapa de bits?.let { Log.i(TAG,”Mapa de bits recibido durante el análisis ” + “\n recuento de bytes: ${ it.byteCount} ” + “\n : densidad ${it.density}”) } } }
- Observers.ImageCapture solo se puede utilizar durante la función Captura de imagen. Es un modelo de observador que devuelve los resultados de la imagen capturada. Puede encontrar el uso simple por separado desde aquí.
val privado observerImageCapture: Observers.ImageCapture = objeto: Observers.ImageCapture { anular resultado divertido (savedUri: Uri?, excepción: ¿Excepción?) { if (savedUri!= null) { Log.i(TAG, “Captura de imagen exitosa”) runOnUiThread { captureImagePreview.setImageBitmap(savedUri.toBitmap(this@ImageCaptureActivity)) } } } }
Uso
Puede encontrar las definiciones de vista y la configuración del generador para cada característica por separado.
Usando análisis de imágenes
val simpleCameraView: SimpleCameraView = findViewById(R.id.camera_view) // Debe llamarse después de obtener los permisos de la cámara simpleCameraView.observeCameraState(observerCameraState) .startImageAnalysis(this, observerImageAnalysis)
Usando captura de imagen
val simpleCameraView: SimpleCameraView = findViewById(R.id.camera_view) // Debe llamarse después de obtener los permisos de la cámara simpleCameraView.observeCameraState(observerCameraState) .imageCapture(this) { ready -> if(ready) { // Se puede tomar la foto / / ¡Puedes configurar la visibilidad del botón de captura aquí si tuvieras uno! // O puedes tomar una foto directamente cuando esté lista simpleCameraView.takePhoto(observerImageCapture) } }
Característica común
// Voltear cámara simpleCameraView.flipCamera() Copyright 2022 github/zekierciyas (Zeki Erciyas) Licenciado bajo la licencia Apache, versión 2.0 (la “Licencia”); no puede utilizar este archivo excepto de acuerdo con la Licencia. Puede obtener una copia de la Licencia en http://www.apache.org/licenses/LICENSE-2.0 A menos que lo exija la ley aplicable o se acuerde por escrito, el software distribuido bajo la Licencia se distribuye “TAL CUAL”, SIN GARANTÍAS. O CONDICIONES DE NINGÚN TIPO, expresas o implícitas. Consulte la Licencia para conocer el idioma específico que rige los permisos y limitaciones de la Licencia.