visor de la cámara

  
Standalone Composable and View based Viewfinder for Camera"

En esta tabla, se enumeran todos los artefactos del grupo androidx.camera-viewfinder.

Artefacto Versión estable Versión potencial Versión beta Versión alfa
viewfinder-compose 1.6.1 - - 1.7.0-alpha01
viewfinder-core 1.6.1 - - 1.7.0-alpha01
viewfinder-view 1.6.1 - - 1.7.0-alpha01
Esta biblioteca se actualizó por última vez el 6 de mayo de 2026

Cómo declarar dependencias

Si deseas agregar una dependencia en camera-viewfinder, debes agregar el repositorio de Maven de Google a tu proyecto. Consulta el repositorio de Maven de Google para obtener más información.

Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:

Groovy

dependencies {
    // Use to implement camera viewfinders
    
    implementation "androidx.camera.viewfinder:viewfinder-view:1.7.0-alpha01"
    implementation "androidx.camera.viewfinder:viewfinder-compose:1.7.0-alpha01"
    implementation "androidx.camera.viewfinder:viewfinder-core:1.7.0-alpha01"

}

Kotlin

dependencies {
    // Use to implement camera viewfinders
    implementation("androidx.camera.viewfinder:viewfinder-view:1.7.0-alpha01")
    implementation("androidx.camera.viewfinder:viewfinder-core:1.7.0-alpha01")
    implementation("androidx.camera.viewfinder:viewfinder-compose:1.7.0-alpha01")


}

Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.

Crear un error nuevo

Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.

Versión 1.7

Versión 1.7.0-alpha01

11 de marzo de 2026

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.7.0-alpha01, androidx.camera.viewfinder:viewfinder-core:1.7.0-alpha01 y androidx.camera.viewfinder:viewfinder-view:1.7.0-alpha01. La versión 1.7.0-alpha01 contiene estas confirmaciones.

Versión 1.6

Versión 1.6.1

6 de mayo de 2026

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.6.1, androidx.camera.viewfinder:viewfinder-core:1.6.1 y androidx.camera.viewfinder:viewfinder-view:1.6.1. La versión 1.6.1 contiene estas confirmaciones.

Versión 1.6.0

25 de marzo de 2026

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.6.0, androidx.camera.viewfinder:viewfinder-core:1.6.0 y androidx.camera.viewfinder:viewfinder-view:1.6.0. La versión 1.6.0 contiene estas confirmaciones.

Cambios importantes desde la versión 1.5.0:

  • Se expuso el visor predeterminado ImplementationMode a través de la nueva API pública ViewfinderDefaults.implementationMode. Ahora se usa como valor predeterminado para ViewfinderView y el elemento componible Viewfinder. (Ic3f52)

Versión 1.6.0-rc01

25 de febrero de 2026

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.6.0-rc01, androidx.camera.viewfinder:viewfinder-core:1.6.0-rc01 y androidx.camera.viewfinder:viewfinder-view:1.6.0-rc01. La versión 1.6.0-rc01 contiene estas confirmaciones.

Versión 1.6.0-beta02

11 de febrero de 2026

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.6.0-beta02, androidx.camera.viewfinder:viewfinder-core:1.6.0-beta02 y androidx.camera.viewfinder:viewfinder-view:1.6.0-beta02. La versión 1.6.0-beta02 contiene estas confirmaciones.

Versión 1.6.0-beta01

28 de enero de 2026

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.6.0-beta01, androidx.camera.viewfinder:viewfinder-core:1.6.0-beta01 y androidx.camera.viewfinder:viewfinder-view:1.6.0-beta01. La versión 1.6.0-beta01 contiene estas confirmaciones.

Versión 1.6.0-alpha02

17 de diciembre de 2025

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha02, androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha02 y androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha02. La versión 1.6.0-alpha02 contiene estas confirmaciones.

Versión 1.6.0-alpha01

22 de octubre de 2025

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01, androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01 y androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha01. La versión 1.6.0-alpha01 contiene estas confirmaciones.

Cambios en la API

  • Se expuso el visor predeterminado ImplementationMode a través de la nueva API pública ViewfinderDefaults.implementationMode. Ahora se usa como valor predeterminado para ViewfinderView y el elemento componible Viewfinder. (Ic3f52)

Versión 1.5

Versión 1.5.3

28 de enero de 2026

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.5.3, androidx.camera.viewfinder:viewfinder-core:1.5.3 y androidx.camera.viewfinder:viewfinder-view:1.5.3. La versión 1.5.3 contiene estas confirmaciones.

Versión 1.5.2

4 de diciembre de 2025

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.5.2, androidx.camera.viewfinder:viewfinder-core:1.5.2 y androidx.camera.viewfinder:viewfinder-view:1.5.2. La versión 1.5.2 contiene estas confirmaciones.

Versión 1.5.1

8 de octubre de 2025

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.5.1, androidx.camera.viewfinder:viewfinder-core:1.5.1 y androidx.camera.viewfinder:viewfinder-view:1.5.1. La versión 1.5.1 contiene estas confirmaciones.

Versión 1.5.0

10 de septiembre de 2025

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.5.0, androidx.camera.viewfinder:viewfinder-core:1.5.0 y androidx.camera.viewfinder:viewfinder-view:1.5.0. La versión 1.5.0 contiene estas confirmaciones.

Cambios importantes desde la versión 1.4.0:

Esta es la primera versión estable de la biblioteca de Camera Viewfinder, que proporciona APIs sólidas, compatibles con el ciclo de vida y fáciles de usar basadas en View y Compose. Estos componentes están diseñados para funcionar como un visor de cámara y se pueden integrar directamente con Camera2.

Esta versión también establece la base para el nuevo artefacto androidx.camera:camera-compose, que presenta CameraXViewfinder, un visor idiomático de Compose que se integra sin problemas con SurfaceRequests de CameraX, de manera similar a como funciona PreviewView para diseños basados en View. Algunos de los cambios más importantes incluyen los siguientes:

  • Reubicación de artefactos: Para mejorar la modularidad, los artefactos de Viewfinder se movieron a su propio grupo de bibliotecas. Los desarrolladores que usaban dependencias androidx.camera:camera-viewfinder* anteriormente deben migrar a androidx.camera.viewfinder:viewfinder-*.
  • Estabilización y refinamientos de la API: Se pulió la superficie de la API para esta versión estable. Esto incluye cambiar el nombre de CameraViewfinder a ViewfinderView para reflejar mejor su versatilidad, reorganizar los paquetes para mayor claridad y convertir ViewfinderSurfaceRequest en un tipo de datos inmutable para una administración de estado más predecible.
  • Actualizaciones de la API de Compose: La API de Compose Viewfinder ahora admite ContentScale y Alignment para un control detallado sobre cómo se muestra la transmisión de la cámara dentro de su contenedor, lo que refleja el comportamiento del elemento componible androidx.compose.foundation.Image estándar.
  • Administración del ciclo de vida de la superficie: Ahora, ViewfinderSurfaceSession se mantiene activo en los cambios de configuración y los eventos del ciclo de vida en la API 29 y versiones posteriores. Este cambio está diseñado para reducir los fotogramas descartados y proporcionar una experiencia del usuario más fluida.
  • Valores predeterminados del modo de implementación: Ahora, Viewfinder usa de forma predeterminada un ImplementationMode inteligente que selecciona automáticamente la mejor implementación subyacente. Prioriza el SurfaceView de alto rendimiento (modo EXTERNAL) y vuelve sin problemas a TextureView (EMBEDDED) más compatible en niveles de API o dispositivos más antiguos con problemas de compatibilidad conocidos. Este comportamiento aún se puede anular para el control total del desarrollador.

Correcciones de errores

  • El elemento componible Viewfinder ahora funciona correctamente dentro de Pager de Compose y con movableContentOf(), lo que garantiza que la superficie se restablezca y administre correctamente en situaciones complejas de la IU. (I0d9be, I79432)
  • Se solucionó un problema en Android 10 y 11 en el que el Viewfinder basado en SurfaceView podía aparecer estirado cuando se aplicaban transformaciones. (Icc77c)

Versión 1.5.0-rc01

13 de agosto de 2025

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.5.0-rc01, androidx.camera.viewfinder:viewfinder-core:1.5.0-rc01 y androidx.camera.viewfinder:viewfinder-view:1.5.0-rc01. La versión 1.5.0-rc01 contiene estas confirmaciones.

Correcciones de errores

Versión 1.5.0-beta03

16 de julio de 2025

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta03, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta03 y androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03. La versión 1.5.0-beta03 contiene estas confirmaciones.

Correcciones de errores

  • El ImplementationMode predeterminado para Viewfinder (tanto Compose como View) ahora selecciona de forma inteligente entre EXTERNAL (para el rendimiento) y EMBEDDED (para la compatibilidad en APIs más antiguas o dispositivos extraños). Este comportamiento aún se puede anular con la configuración explícita en ViewfinderSurfaceRequest o los atributos XML (en la API basada en View). (Iecd3a)
  • Se mejoró la administración de sesiones de Surface, lo que permite que ViewfinderSurfaceSession se mantenga activo en los ciclos de vida de creación o destrucción de la superficie cuando se usa TextureView o SurfaceView en la API 29 y versiones posteriores. (I112d9)
  • Ahora, Viewfinder garantiza que las Surfaces se liberen en el momento adecuado, solo cuando la sesión ya no las use, en lugar de liberarlas siempre cuando se descarte el elemento componible. Para EXTERNAL (SurfaceView), este comportamiento solo está disponible actualmente en la API 29 y versiones posteriores. Para EMBEDDED (TextureView), este comportamiento está presente en todos los niveles de API. (I9a03f)
  • Ahora, Viewfinder controla correctamente el reemplazo de la superficie en situaciones como cuando un visor EXTERNAL en el nivel de API 28 o inferior se mueve fuera de la pantalla o si un Viewfinder (con cualquier ImplementationMode) forma parte de moveableContentOf(). (I79432)
  • El elemento componible Viewfinder ahora funciona correctamente con Pager de Compose. Este cambio garantiza que el elemento componible se pueda restablecer correctamente mediante la implementación de la devolución de llamada onReset de AndroidView, que admite implementaciones EMBEDDED y EXTERNAL. (I0d9be)
  • Se solucionó un problema en Android 10/11 en el que el Viewfinder EXTERNAL podía aparecer estirado o incorrecto debido a que las operaciones de transformación (como la escala o la traducción) se aplicaban demasiado pronto. Ahora, el sistema espera a que se cree la Surface antes de aplicar estas transformaciones en la fase de diseño, lo que garantiza un resultado correcto. (Icc77c)

Versión 1.5.0-beta02

4 de junio de 2025

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta02, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta02 y androidx.camera.viewfinder:viewfinder-view:1.5.0-beta02. La versión 1.5.0-beta02 contiene estas confirmaciones.

Versión 1.5.0-beta01

7 de mayo de 2025

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta01, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta01 y androidx.camera.viewfinder:viewfinder-view:1.5.0-beta01. La versión 1.5.0-beta01 contiene estas confirmaciones.

  • Esta es la primera versión beta oficial de los visores basados en View y Compose que son lo suficientemente flexibles para usarse con Camera2. Si buscas una View o un elemento componible para usar con CameraX, consulta PreviewView y CameraXViewfinder.

Nuevas funciones

  • Ahora, se pueden usar ContentScale y Alignment en el visor basado en Compose para escalar y colocar la superficie mostrada dentro de su contenedor, de manera similar a como se comporta androidx.compose.foundation.Image. (Ibcea3)

Cambios en la API

  • TransformationInfo ahora tiene valores predeterminados para todos los argumentos. Esto permitirá que se creen visores sin TransformationInfo, que usará de forma predeterminada una rotación de origen de 0, sin duplicación de origen y sin rect de recorte. (I2b1b2)
  • El visor componible ahora toma una expresión lambda final para recibir una sesión de Surface, similar a AndroidExternalSurface. La expresión lambda proporcionada usa ViewfinderInitScope como receptor, lo que permite instalar una devolución de llamada para recibir sesiones nuevas de Surface. Estas sesiones de Surface liberan automáticamente los recursos que contiene el visor cuando están fuera del alcance. (Ib2b0d)
  • Se quitó ViewfinderSurfaceRequest.Builder.populateFromCharacteristics y se reemplazó por un conjunto equivalente de APIs estáticas que se pueden usar para generar TransformationInfo, que producirá la misma transformación que populateFromCharacteristics. Estos métodos estáticos se agregan a la clase Camera2TransformationInfo. (Idc6af)
  • ViewfinderSurfaceRequest ya no incluye APIs asíncronas para recuperar la superficie. Ahora es un tipo de datos inmutable. Las APIs para recuperar la Surface ahora se mueven al visor. (I30127)
  • Se cambió el nombre de CameraViewfinder a ViewfinderView para que la denominación se alinee con la del elemento componible Viewfinder y para indicar que se puede usar con más fuentes que solo la cámara. (Id9e6b)
  • Las clases de viewfinder-view se movieron al subpaquete androidx.camera.viewfinder.view desde el paquete androidx.camera.viewfinder. (I6cb44)
  • Se agregaron APIs nuevas al visor basado en View que permiten configurar la rotación de origen, la duplicación y el rectángulo de recorte. Esta clase TransformationInfo es la misma que usa el visor basado en Compose. (I907c3)
  • El visor basado en View ahora usa las nuevas APIs de ViewfinderSurfaceRequest que ya no controlan internamente la respuesta de Surface. En lugar de mostrar ListenableFuture<Surface>, las APIs de requestSurfaceSession() ahora muestran ListenableFuture<ViewfinderSurfaceSession>, que muestra una clase AutoCloseable que, cuando se cierra, se comporta de la misma manera que cuando se llama a la API antigua de ViewfinderSurfaceRequest.markSurfaceSafeToRelease(). Esto proporciona una separación más clara de las responsabilidades entre la solicitud de superficie y la respuesta de superficie. (I19041)

Versión 1.4

Versión 1.4.0-alpha13

26 de febrero de 2025

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha13, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha13 y androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha13. La versión 1.4.0-alpha13 contiene estas confirmaciones.

Versión 1.4.0-alpha12

15 de enero de 2025

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha12, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha12 y androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha12. La versión 1.4.0-alpha12 contiene estas confirmaciones.

Nuevas funciones

  • Se actualizó compileSdk como 35 para usar la API relacionada con Android 15. Las apps que usan bibliotecas de CameraX también deberán actualizar su configuración de compileSdk. (Ic80cd)
  • Esta biblioteca ahora usa anotaciones de nulabilidad de JSpecify, que son de uso de tipo. Los desarrolladores de Kotlin deben usar el siguiente argumento del compilador para aplicar el uso correcto: -Xjspecify-annotations=strict (este es el valor predeterminado a partir de la versión 2.1.0 del compilador de Kotlin). (I7bcd7, b/326456246)

Versión 1.4.0-alpha11

11 de diciembre de 2024

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha11, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha11 y androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha11. La versión 1.4.0-alpha11 contiene estas confirmaciones.

Cambios en la API

  • Las clases viewfinder-core se movieron a paquetes que son coherentes con la biblioteca a la que pertenecen. (I431c6)
  • CameraViewfinder.ScaleType se movió a viewfinder-core para que se pueda volver a usar con Compose (I87ef1).
  • Se quitaron las clases CameraViewfinder obsoletas. Usa las nuevas APIs que proporcionan una funcionalidad equivalente. (I6e59a)

Versión 1.4.0-alpha10

30 de octubre de 2024

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha10, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha10 y androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha10. La versión 1.4.0-alpha10 contiene estas confirmaciones.

Versión 1.4.0-alpha09

2 de octubre de 2024

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha09, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha09 y androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha09. La versión 1.4.0-alpha09 contiene estas confirmaciones.

Versión 1.4.0-alpha08

4 de septiembre de 2024

Lanzamiento de androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha08, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha08 y androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha08. La versión 1.4.0-alpha08 contiene estas confirmaciones.

Nuevas funciones

Con la actualización a 1.4.0-alpha08, el artefacto de CameraX Viewfinder se movió a su propio grupo de bibliotecas. Este cambio es necesario para mejorar la modularidad y el mantenimiento de la biblioteca de CameraX.

Si antes dependías de androidx.camera:camera-viewfinder, androidx.camera:camera-viewfinder-compose o androidx.camera:camera-viewfinder-core, deberás hacer la transición de tus dependencias a lo siguiente:

  • androidx.camera:camera-viewfinder -> androidx.camera.viewfinder:viewfinder-view
  • androidx.camera:camera-viewfinder-compose -> androidx.camera.viewfinder:viewfinder-compose
  • androidx.camera:camera-viewfinder-core -> androidx.camera.viewfinder:viewfinder-core

No se deberían necesitar cambios de código para realizar esta transición. Las coordenadas de Maven del Viewfinder antiguo ya no recibirán actualizaciones.

Además, si usas Compose con CameraX, ahora hay disponible una nueva biblioteca de Compose en versión alfa: androidx.camera:camera-compose. Esto proporciona el elemento componible CameraXViewfinder, que es un Viewfinder idiomático de Compose que adapta SurfaceRequest de CameraX a Compose, de manera similar a como funciona PreviewView para las vistas.