mirino della fotocamera

  
Mirino basato su View e Composable autonomo per la fotocamera"

Questa tabella elenca tutti gli artefatti nel gruppo androidx.camera-viewfinder.

Elemento Release stabile Candidato per la release Versione beta Alpha Release
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
Ultimo aggiornamento della raccolta: 16 luglio 2025

Dichiarazione di dipendenze

Per aggiungere una dipendenza da camera-viewfinder, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.

Aggiungi le dipendenze per gli artefatti che ti servono nel file build.gradle per la tua app o il tuo modulo:

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")


}

Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze di build.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa libreria. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa libreria. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Creare un nuovo problema

Per ulteriori informazioni, consulta la documentazione di Issue Tracker.

Versione 1.5

Versione 1.5.0-beta03

16 luglio 2025

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 sono rilasciati. La versione 1.5.0-beta03 contiene questi commit.

Correzioni di bug

  • Il ImplementationMode predefinito per Viewfinder (sia basato sulla composizione che sulla visualizzazione) ora seleziona in modo intelligente tra EXTERNAL (per il rendimento) e EMBEDDED (per la compatibilità con API precedenti/dispositivi particolari). Questo comportamento può comunque essere sostituito da impostazioni esplicite in ViewfinderSurfaceRequest o da attributi XML (nell'API basata sulla visualizzazione). (Iecd3a)
  • Gestione migliorata delle sessioni di Surface consentendo di mantenere attivo ViewfinderSurfaceSession durante i cicli di vita di creazione/eliminazione di Surface quando si utilizza TextureView o SurfaceView su API 29+. (I112d9)
  • Ora Viewfinder garantisce che le superfici vengano rilasciate al momento giusto, solo quando non sono più in uso nella sessione, anziché sempre quando viene eliminato il composable. Per EXTERNAL (SurfaceView), questo comportamento è attualmente disponibile solo sull'API 29+. Per EMBEDDED (TextureView), questo comportamento è presente in tutti i livelli API. (I9a03f)
  • Ora Viewfinder gestisce correttamente la sostituzione della superficie in scenari come quando un mirino EXTERNAL a livello API 28 o inferiore si sposta fuori dallo schermo o se un Viewfinder (con qualsiasi ImplementationMode) fa parte di moveableContentOf(). (I79432)
  • Il composable Viewfinder ora funziona correttamente con Pager di Compose. Questa modifica garantisce che il componente componibile possa essere reimpostato correttamente implementando il callback onReset di AndroidView, supportando le implementazioni EMBEDDED e EXTERNAL. (I0d9be)
  • Corregge un problema su Android 10/11 in cui EXTERNAL Viewfinder potrebbe apparire allungato o errato a causa dell'applicazione troppo precoce di operazioni di trasformazione (come scalatura o traslazione). Il sistema ora attende la creazione della superficie prima di applicare queste trasformazioni nella fase di layout, garantendo un output corretto. (Icc77c)

Versione 1.5.0-beta02

4 giugno 2025

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 sono rilasciati. La versione 1.5.0-beta02 contiene questi commit.

Versione 1.5.0-beta01

7 maggio 2025

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 sono rilasciati. La versione 1.5.0-beta01 contiene questi commit.

  • Si tratta della prima release beta ufficiale dei mirini basati sulla visualizzazione e sulla composizione, sufficientemente flessibili da essere utilizzati con Camera2. Se cerchi una View o un elemento componibile da utilizzare con CameraX, consulta PreviewView e CameraXViewfinder.

Nuove funzionalità

  • ContentScale e Alignment ora possono essere utilizzati nel mirino basato sulla composizione per scalare e posizionare la superficie visualizzata all'interno del contenitore, in modo simile al comportamento di androidx.compose.foundation.Image. (Ibcea3)

Modifiche alle API

  • TransformationInfo ora ha valori predefiniti per tutti gli argomenti. In questo modo, i mirini possono essere creati senza TransformationInfo, che per impostazione predefinita avrà una rotazione della sorgente pari a 0, nessun mirroring della sorgente e nessun rettangolo di ritaglio. (I2b1b2)
  • Composable Viewfinder ora accetta una lambda finale per ricevere una sessione di Surface, in modo simile a AndroidExternalSurface. La funzione lambda fornita utilizza ViewfinderInitScope come destinatario, il che consente di installare un callback per ricevere nuove sessioni di Surface. Queste sessioni di superficie rilasciano automaticamente le risorse detenute dal mirino quando escono dall'ambito. (Ib2b0d)
  • ViewfinderSurfaceRequest.Builder.populateFromCharacteristics è stato rimosso e sostituito con un insieme equivalente di API statiche che possono essere utilizzate per generare TransformationInfo, che produrrà la stessa trasformazione di populateFromCharacteristics. Questi metodi statici vengono aggiunti alla classe Camera2TransformationInfo. (Idc6af)
  • ViewfinderSurfaceRequest non include più API asincrone per il recupero della superficie. Ora è un tipo di dati immutabile. Le API per il recupero della superficie sono state spostate nel mirino. (I30127)
  • CameraViewfinder è stato rinominato in ViewfinderView in modo che la denominazione sia in linea con quella del composable Viewfinder e per indicare che può essere utilizzato con più di una sorgente della videocamera. (Id9e6b)
  • I corsi di viewfinder-view sono stati spostati nel sottopacchetto androidx.camera.viewfinder.view dal pacchetto androidx.camera.viewfinder. (I6cb44)
  • Sono state aggiunte nuove API al mirino basato sulla visualizzazione che consentono di impostare la rotazione, il mirroring e il rettangolo di ritaglio della sorgente. Questa classe TransformationInfo è la stessa utilizzata da Viewfinder basato su Compose. (I907c3)
  • Il mirino basato sulla visualizzazione ora utilizza nuove API ViewfinderSurfaceRequest che non gestiscono più internamente la risposta di Surface. Anziché restituire ListenableFuture<Surface>, le API requestSurfaceSession() ora restituiscono ListenableFuture<ViewfinderSurfaceSession>, che restituisce una classe AutoCloseable che, una volta chiusa, si comporta allo stesso modo della chiamata alla vecchia API di ViewfinderSurfaceRequest.markSurfaceSafeToRelease(). In questo modo, le responsabilità tra la richiesta di superficie e la risposta di superficie sono più chiaramente separate. (I19041)

Versione 1.4

Versione 1.4.0-alpha13

26 febbraio 2025

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 sono rilasciati. La versione 1.4.0-alpha13 contiene questi commit.

Versione 1.4.0-alpha12

15 gennaio 2025

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 sono rilasciati. La versione 1.4.0-alpha12 contiene questi commit.

Nuove funzionalità

  • È stato eseguito l'upgrade di compileSdk a 35 per l'utilizzo dell'API correlata ad Android 15. Le app che utilizzano le librerie CameraX dovranno anche eseguire l'upgrade dell'impostazione di configurazione compileSdk. (Ic80cd)
  • Questa libreria ora utilizza le annotazioni di nullabilità JSpecify, che sono di tipo use. Gli sviluppatori Kotlin devono utilizzare il seguente argomento del compilatore per imporre l'utilizzo corretto: -Xjspecify-annotations=strict (questo è il valore predefinito a partire dalla versione 2.1.0 del compilatore Kotlin). (I7bcd7, b/326456246)

Versione 1.4.0-alpha11

11 dicembre 2024

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 sono rilasciati. La versione 1.4.0-alpha11 contiene questi commit.

Modifiche alle API

  • Le classi viewfinder-core sono state spostate in pacchetti coerenti con la libreria a cui appartengono. (I431c6)
  • CameraViewfinder.ScaleType è stato spostato in viewfinder-core in modo che possa essere riutilizzato con la composizione (I87ef1)
  • Le classi CameraViewfinder deprecate vengono rimosse. Utilizza le nuove API che forniscono funzionalità equivalenti. (I6e59a)

Versione 1.4.0-alpha10

30 ottobre 2024

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 sono rilasciati. La versione 1.4.0-alpha10 contiene questi commit.

Versione 1.4.0-alpha09

2 ottobre 2024

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 sono rilasciati. La versione 1.4.0-alpha09 contiene questi commit.

Versione 1.4.0-alpha08

4 settembre 2024

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 sono rilasciati. La versione 1.4.0-alpha08 contiene questi commit.

Nuove funzionalità

Con l'aggiornamento alla versione 1.4.0-alpha08, l'artefatto del mirino di CameraX è stato spostato nel proprio gruppo di librerie. Questa modifica è necessaria per migliorare la modularità e la manutenibilità della libreria CameraX.

Se in precedenza utilizzavi androidx.camera:camera-viewfinder, androidx.camera:camera-viewfinder-compose o androidx.camera:camera-viewfinder-core, dovrai eseguire la transizione delle dipendenze ai seguenti elementi:

  • 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

Per eseguire questa transizione non dovrebbero essere necessarie modifiche al codice. Le vecchie coordinate Maven di Viewfinder non riceveranno più aggiornamenti.

Inoltre, se utilizzi Compose con CameraX, è ora disponibile in versione alpha una nuova libreria Compose-first: androidx.camera:camera-compose. Questo fornisce il composable CameraXViewfinder, che è un Viewfinder idiomatico di Compose che adatta SurfaceRequest di CameraX a Compose, in modo simile al funzionamento di PreviewView per le visualizzazioni.