- 1

Creación de Cámara Selfie con Kits de Huawei
01:10 - 2
Depuración de Aplicaciones en la Nube con Huawei Cloud Debugging
02:26 - 3

Desarrollo de Aplicaciones con Huawei Mobile Services Core
02:50 - 4

Creación de Proyecto Android Studio con Huawei Kits
02:18 - 5

Creación de Aplicaciones en AppGallery Connect de Huawei
03:28 - 6
Generación de Huella Digital SHA-256 para Android Studio
01:35 - 7

Configuración de APIs Huawei para Proyecto de Selfies en Android Studio
03:14 - 8

Configuración de Gradle para Huawei en Android Studio
09:25 - 9

Sincronización de aplicaciones con dependencias Huawei en Gradle
03:12
Configuración y Personalización de Cámaras en Android
Clase 16 de 31 • Curso de Desarrollo de Aplicaciones con Huawei
Contenido del curso
- 14

Diseño de Pantalla en Selficam con Huawei ML Kit
10:05 - 15

Permisos de Cámara en Aplicaciones Android
17:18 - 16

Configuración y Personalización de Cámaras en Android
10:20 - 17

Personalización de Interfaz Gráfica para Cámara en Android
08:05 - 18

Reconocimiento Facial con Machine Learning en Android
10:58 - 19

Creación del Motor de Lente para Selfie Cam en Android
13:16 - 20

Implementación de Layout para Actividad de Cámara en Android
11:54 - 21

Integración de Cámara y Botones en Aplicación de Selfies
12:18 - 22

Implementación de Verificación Facial en App Android
10:01 - 23

Detección de Sonrisa y Rostro en Cámaras Huawei
11:37 - 24

Detección de Rostros y Cambio de Cámara en Android Studio
10:47 - 25

Implementación de Funcionalidad de Toma y Retoma de Fotos en Android
11:27 - 26

Guardar fotos en la galería con Android y Huawei Machine Learning
07:56
¿Cómo configurar la personalización de una cámara?
Para alcanzar una funcionalidad ideal en aplicaciones de cámara, es vital que los desarrolladores sepan personalizar sus configuraciones. Aquí te explico cómo implementar dicha personalización, trabajando con paquetes, clases y variables esenciales que te permitirán diseñar una cámara dinámica y eficiente.
¿Qué paquetes necesitamos?
Lo primero en nuestra tarea de personalización es crear dos paquetes fundamentales:
- Cámara: Este paquete contendrá la clase para la configuración de nuestra cámara.
- Overlay o Capa: Aquí configuraremos el overlay o capa gráfica necesaria para la visualización.
¿Cómo configurar las variables de la cámara?
En la clase CameraConfiguration, definimos cómo queremos que funcione nuestra cámara:
class CameraConfiguration {
var FPS: Int = 20
var previewHeight: Int? = null
var isAutoFocus: Boolean = true
...
}
- FPS: Establece los cuadros por segundo, críticos para la suavidad del video.
- previewHeight: La altura del visor de la cámara.
- isAutoFocus: Define si la cámara usará autofoco, configurada al inicio como verdadero.
¿Qué funciones debemos sincronizar?
Es esencial que algunas operaciones sean sincronizadas, ya que la cámara opera en tiempo real y los retrasos pueden causar problemas:
synchronized fun setCameraFasing(required: Int) {
if (facing != CAMERA_FACING_BACK && facing != CAMERA_FACING_FRONT) {
throw IllegalArgumentException("Cámara no válida")
}
this.facing = required
}
- setCameraFasing: Asegura que el cambio de dirección de la cámara sea instantáneo y sin errores.
¿Cómo creamos el overlay de cámara?
Una parte de la configuración de cámara es el GraphicOverlay, la capa gráfica que utilizamos para manejar elementos visuales:
class GraphicOverlay(context: Context, attrs: AttributeSet?) : View(context, attrs) {
private var lock: Any = Any()
private var previewWidth: Int = 0
private var previewHeight: Int = 0
...
}
- Lock: Para bloquear procesos cuando se hakea la foto.
- previewWidth y previewHeight: Ancho y altura de la previsualización, ambos inicializados a cero.
¿Cómo establecer los valores de escala?
Esto es crucial para la proporción correcta del overlay:
var scaleX: Float = 1.0f
private set
var scaleY: Float = 1.0f
private set
- scaleX y scaleY: Ambos deben ser
private, lo que permite acceso controlado.
¿Qué funciones adicionales debemos implementar?
Finalmente, añadimos funciones para manejar gráficos:
synchronized fun setCameraInfo(width: Int, height: Int, facing: Int) {
previewWidth = width
previewHeight = height
this.facing = facing
postInvalidate()
}
fun addGraphics(graphic: Graphic) { ... }
fun clear() { ... }
- setCameraInfo: Recibe y sincroniza el ancho, altura y dirección de la cámara.
- addGraphics y clear: Son métodos para gestionar gráficos, esenciales en la mayoría de proyectos interactivos.
Este enfoque integral personaliza la funcionalidad de la cámara mientras se asegura que los procesos críticos sean gestionados de forma eficiente. Ahora, tienes las herramientas y el conocimiento para crear una aplicación de cámara con configuraciones personalizadas que satisface tus necesidades y las de tus usuarios. ¡Ánimo y sigue aprendiendo!