visor da câmera

  
Elemento combinável independente e visor baseado em visualização para câmera"

Esta tabela lista todos os artefatos no grupo androidx.camera-viewfinder.

Artefato Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
viewfinder-compose - - 1.5.0-beta03 1.4.0-alpha13
viewfinder-core - - 1.5.0-beta03 1.4.0-alpha13
viewfinder-view - - 1.5.0-beta03 1.4.0-alpha13
Esta biblioteca foi atualizada pela última vez em 16 de julho de 2025

Declarar dependências

Para adicionar uma dependência a camera-viewfinder, é preciso adicionar o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.

Adicione as dependências dos artefatos necessários ao arquivo build.gradle do seu app ou módulo:

Groovy

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

}

Kotlin

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


}

Para mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.5

Versão 1.5.0-beta03

16 de julho de 2025

Lançamento de androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta03, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta03 e androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03. A versão 1.5.0-beta03 contém estas confirmações.

Correções de bugs

  • O ImplementationMode padrão para Viewfinder (baseado em Compose e em visualização) agora seleciona de forma inteligente entre EXTERNAL (para desempenho) e EMBEDDED (para compatibilidade em APIs mais antigas/dispositivos incomuns). Esse comportamento ainda pode ser substituído por configurações explícitas em ViewfinderSurfaceRequest ou atributos XML (na API baseada em visualização). (Iecd3a).
  • Melhoramos o gerenciamento de sessões do Surface, permitindo que o ViewfinderSurfaceSession seja mantido ativo em ciclos de vida de criação/destruição de superfície ao usar TextureView ou SurfaceView na API 29 ou mais recente. (I112d9)
  • O Viewfinder agora garante que as Surfaces sejam liberadas no momento certo, apenas quando não estiverem mais em uso pela sessão, em vez de sempre liberar quando o elemento combinável for descartado. Para EXTERNAL (SurfaceView), esse comportamento está disponível apenas na API 29 ou mais recente. Para EMBEDDED (TextureView), esse comportamento está presente em todos os níveis de API. (I9a03f).
  • O Viewfinder agora processa corretamente a substituição de superfície em cenários como quando um visor EXTERNAL no nível de API 28 ou inferior sai da tela ou se um Viewfinder (com qualquer ImplementationMode) faz parte de moveableContentOf(). (I79432)
  • O elemento combinável Viewfinder agora funciona corretamente com o Pager do Compose. Essa mudança garante que o elemento combinável possa ser redefinido com sucesso implementando o callback onReset de AndroidView, com suporte às implementações EMBEDDED e EXTERNAL. (I0d9be)
  • Corrige um problema no Android 10/11 em que o EXTERNAL Viewfinder podia aparecer esticado ou incorreto devido à aplicação precoce de operações de transformação (como escala ou tradução). Agora, o sistema aguarda a criação da superfície antes de aplicar essas transformações na fase de layout, garantindo a saída correta. (Icc77c).

Versão 1.5.0-beta02

4 de junho de 2025

Lançamento de androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta02, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta02 e androidx.camera.viewfinder:viewfinder-view:1.5.0-beta02. A versão 1.5.0-beta02 contém estas confirmações.

Versão 1.5.0-beta01

7 de maio de 2025

Lançamento de androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta01, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta01 e androidx.camera.viewfinder:viewfinder-view:1.5.0-beta01. A versão 1.5.0-beta01 contém estas confirmações.

  • Esta é a primeira versão Beta oficial dos visores baseados em visualização e em Compose, que são flexíveis o suficiente para serem usados com a Camera2. Se você estiver procurando uma visualização ou um elemento combinável para usar com a CameraX, consulte PreviewView e CameraXViewfinder.

Novos recursos

  • Agora, ContentScale e Alignment podem ser usados no visor baseado no Compose para dimensionar e posicionar a superfície mostrada no contêiner, de maneira semelhante ao comportamento de androidx.compose.foundation.Image. (Ibcea3)

Mudanças na API

  • TransformationInfo agora tem valores padrão para todos os argumentos. Isso permite que os Viewfinders sejam criados sem TransformationInfo, que será padrão para uma rotação de origem de 0, sem espelhamento de origem e sem um retângulo de corte. (I2b1b2)
  • O Viewfinder combinável agora usa uma lambda final para receber uma sessão de Surface, semelhante a AndroidExternalSurface. A lambda fornecida usa ViewfinderInitScope como um receptor, o que permite instalar um callback para receber novas sessões da plataforma. Essas sessões de superfície liberam automaticamente os recursos mantidos pelo Viewfinder quando saem do escopo. (Ib2b0d).
  • ViewfinderSurfaceRequest.Builder.populateFromCharacteristics foi removido e substituído por um conjunto equivalente de APIs estáticas que podem ser usadas para gerar TransformationInfo, que produzirá a mesma transformação que populateFromCharacteristics. Esses métodos estáticos são adicionados à classe Camera2TransformationInfo. (Idc6af).
  • ViewfinderSurfaceRequest não inclui mais APIs assíncronas para recuperar a superfície. Agora é um tipo de dados imutável. As APIs para recuperar a superfície agora foram movidas para o visor. (I30127).
  • CameraViewfinder foi renomeado como ViewfinderView para que o nome esteja alinhado com o nome do elemento combinável Viewfinder e para indicar que ele pode ser usado com mais do que apenas fontes de câmera. (Id9e6b).
  • As classes de viewfinder-view foram movidas para o subpacote androidx.camera.viewfinder.view do pacote androidx.camera.viewfinder. (I6cb44).
  • Novas APIs foram adicionadas ao Viewfinder baseado em visualização, permitindo definir a rotação, o espelhamento e o retângulo de corte da origem. Essa classe TransformationInfo é a mesma usada pelo Viewfinder baseado em Compose. (I907c3).
  • O Viewfinder baseado em visualização agora usa novas APIs ViewfinderSurfaceRequest que não processam mais internamente a resposta da superfície. Em vez de retornar ListenableFuture<Surface>, as APIs requestSurfaceSession() agora retornam ListenableFuture<ViewfinderSurfaceSession>, que retorna uma classe AutoCloseable. Quando fechada, ela se comporta da mesma forma que chamar a API antiga de ViewfinderSurfaceRequest.markSurfaceSafeToRelease(). Isso oferece uma separação mais clara de responsabilidades entre a solicitação e a resposta da superfície. (I19041).

Versão 1.4

Versão 1.4.0-alpha13

26 de fevereiro de 2025

Lançamento de androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha13, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha13 e androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha13. A versão 1.4.0-alpha13 contém estas confirmações.

Versão 1.4.0-alpha12

15 de janeiro de 2025

Lançamento de androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha12, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha12 e androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha12. A versão 1.4.0-alpha12 contém estas confirmações.

Novos recursos

  • O compileSdk foi atualizado para 35 para usar a API relacionada ao Android 15. Os apps que usam bibliotecas CameraX também precisam atualizar a configuração compileSdk. (Ic80cd)
  • Agora, essa biblioteca usa anotações de nulidade do JSpecify, que são de uso de tipo. Os desenvolvedores Kotlin precisam usar o seguinte argumento do compilador para garantir o uso correto: -Xjspecify-annotations=strict (esse é o padrão a partir da versão 2.1.0 do compilador Kotlin). (I7bcd7, b/326456246)

Versão 1.4.0-alpha11

11 de dezembro de 2024

Lançamento de androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha11, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha11 e androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha11. A versão 1.4.0-alpha11 contém estas confirmações.

Mudanças na API

  • As classes viewfinder-core foram movidas para pacotes consistentes com a biblioteca a que pertencem. (I431c6).
  • CameraViewfinder.ScaleType foi movido para viewfinder-core para que possa ser reutilizado com o Compose (I87ef1).
  • As classes CameraViewfinder descontinuadas foram removidas. Use as novas APIs, que oferecem funcionalidades equivalentes. (I6e59a).

Versão 1.4.0-alpha10

30 de outubro de 2024

Lançamento de androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha10, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha10 e androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha10. A versão 1.4.0-alpha10 contém estas confirmações.

Versão 1.4.0-alpha09

2 de outubro de 2024

Lançamento de androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha09, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha09 e androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha09. A versão 1.4.0-alpha09 contém estas confirmações.

Versão 1.4.0-alpha08

4 de setembro de 2024

Lançamento de androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha08, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha08 e androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha08. A versão 1.4.0-alpha08 contém estas confirmações.

Novos recursos

Com a atualização para 1.4.0-alpha08, o artefato Viewfinder da CameraX foi movido para o próprio grupo de bibliotecas. Essa mudança é necessária para melhorar a modularidade e a capacidade de manutenção da biblioteca CameraX.

Se você dependia de androidx.camera:camera-viewfinder, androidx.camera:camera-viewfinder-compose ou androidx.camera:camera-viewfinder-core, vai precisar migrar suas dependências para o seguinte:

  • 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

Não é necessário mudar o código para fazer essa transição. As coordenadas maven do Viewfinder antigo não vão mais receber atualizações.

Além disso, se você estiver usando o Compose com o CameraX, uma nova biblioteca do Compose está disponível em versão Alfa: androidx.camera:camera-compose. Isso fornece o elemento combinável CameraXViewfinder, que é um visor idiomático do Compose que adapta o SurfaceRequest do CameraX ao Compose, semelhante a como o PreviewView funciona para visualizações.