visor da 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 |
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.
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 paraViewfinder
(baseado em Compose e em visualização) agora seleciona de forma inteligente entreEXTERNAL
(para desempenho) eEMBEDDED
(para compatibilidade em APIs mais antigas/dispositivos incomuns). Esse comportamento ainda pode ser substituído por configurações explícitas emViewfinderSurfaceRequest
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. ParaEXTERNAL
(SurfaceView
), esse comportamento está disponível apenas na API 29 ou mais recente. ParaEMBEDDED
(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 visorEXTERNAL
no nível de API 28 ou inferior sai da tela ou se umViewfinder
(com qualquerImplementationMode
) faz parte demoveableContentOf()
. (I79432) - O elemento combinável
Viewfinder
agora funciona corretamente com oPager
do Compose. Essa mudança garante que o elemento combinável possa ser redefinido com sucesso implementando o callbackonReset
deAndroidView
, com suporte às implementaçõesEMBEDDED
eEXTERNAL
. (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
eCameraXViewfinder
.
Novos recursos
- Agora,
ContentScale
eAlignment
podem ser usados no visor baseado no Compose para dimensionar e posicionar a superfície mostrada no contêiner, de maneira semelhante ao comportamento deandroidx.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 semTransformationInfo
, 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 usaViewfinderInitScope
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 gerarTransformationInfo
, que produzirá a mesma transformação quepopulateFromCharacteristics
. Esses métodos estáticos são adicionados à classeCamera2TransformationInfo
. (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 comoViewfinderView
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 subpacoteandroidx.camera.viewfinder.view
do pacoteandroidx.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 retornarListenableFuture<Surface>
, as APIsrequestSurfaceSession()
agora retornamListenableFuture<ViewfinderSurfaceSession>
, que retorna uma classeAutoCloseable
. Quando fechada, ela se comporta da mesma forma que chamar a API antiga deViewfinderSurfaceRequest.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çãocompileSdk
. (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 paraviewfinder-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.