mirino della fotocamera
Questa tabella elenca tutti gli artefatti nel gruppo androidx.camera-viewfinder.
| Elemento | Release stabile | Candidato per la release | Release beta | Release alpha |
|---|---|---|---|---|
| viewfinder-compose | 1.5.1 | - | - | 1.6.0-alpha01 |
| viewfinder-core | 1.5.1 | - | - | 1.6.0-alpha01 |
| viewfinder-view | 1.5.1 | - | - | 1.6.0-alpha01 |
Dichiara le 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 necessari 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.6.0-alpha01" implementation "androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01" implementation "androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01" }
Kotlin
dependencies { // Use to implement camera viewfinders implementation("androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha01") implementation("androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01") implementation("androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01") }
Per saperne di più sulle dipendenze, consulta Aggiungi 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 segnalare un nuovo problema, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per ulteriori informazioni, consulta la documentazione di Issue Tracker.
Versione 1.6
Versione 1.6.0-alpha01
22 ottobre 2025
androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01, androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01 e androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha01 sono stati rilasciati. La versione 1.6.0-alpha01 contiene questi commit.
Modifiche alle API
- È stato esposto il mirino predefinito
ImplementationModetramite la nuova API pubblicaViewfinderDefaults.implementationMode. Ora viene utilizzato come valore predefinito sia perViewfinderViewche per il componente componibileViewfinder. (Ic3f52)
Versione 1.5
Versione 1.5.1
8 ottobre 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.1, androidx.camera.viewfinder:viewfinder-core:1.5.1 e androidx.camera.viewfinder:viewfinder-view:1.5.1 sono stati rilasciati. La versione 1.5.1 contiene questi commit.
Versione 1.5.0
10 settembre 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.0, androidx.camera.viewfinder:viewfinder-core:1.5.0 e androidx.camera.viewfinder:viewfinder-view:1.5.0 sono stati rilasciati. La versione 1.5.0 contiene questi commit.
Modifiche importanti dalla versione 1.4.0:
Questa è la prima release stabile della libreria del mirino della fotocamera, che fornisce API robuste, consapevoli del ciclo di vita e facili da usare basate su View e Compose. Questi componenti sono progettati per fungere da mirino della fotocamera e possono essere integrati direttamente con Camera2.
Questa release pone anche le basi per il nuovo artefatto androidx.camera:camera-compose, che introduce CameraXViewfinder, un mirino idiomatico di Compose che si integra perfettamente con le SurfaceRequest di CameraX, in modo simile al funzionamento di PreviewView per i layout basati su View. Alcune delle modifiche più importanti includono:
- Rilocazione degli artefatti:per migliorare la modularità, gli artefatti del mirino sono stati spostati nel proprio gruppo di librerie. Gli sviluppatori che utilizzavano in precedenza le dipendenze
androidx.camera:camera-viewfinder*devono eseguire la migrazione aandroidx.camera.viewfinder:viewfinder-*. - Stabilizzazione e perfezionamenti dell'API:la superficie dell'API è stata perfezionata per questa release stabile. Ciò include la ridenominazione di
CameraViewfinderinViewfinderViewper riflettere meglio la sua versatilità, la riorganizzazione dei pacchetti per maggiore chiarezza e la trasformazione diViewfinderSurfaceRequestin un tipo di dati immutabile per una gestione dello stato più prevedibile. - Aggiornamenti dell'API Compose: l'API Compose
Viewfinderora supportaContentScaleeAlignmentper un controllo granulare su come viene visualizzato lo stream della videocamera all'interno del suo contenitore, rispecchiando il comportamento del composableandroidx.compose.foundation.Imagestandard. - Surface Lifecycle Management:
ViewfinderSurfaceSessionora viene mantenuto attivo durante le modifiche alla configurazione e gli eventi del ciclo di vita su API 29 e versioni successive. Questa modifica è progettata per ridurre i frame persi e offrire un'esperienza utente più fluida. - Valori predefiniti della modalità di implementazione:ora
Viewfinderutilizza per impostazione predefinita unImplementationModeintelligente che seleziona automaticamente la migliore implementazione sottostante. Dà la priorità aSurfaceView(modalitàEXTERNAL) ad alte prestazioni e torna in modo controllato aTextureView(modalitàEMBEDDED) più compatibile su livelli API precedenti o dispositivi con problemi di compatibilità noti. Questo comportamento può comunque essere ignorato per consentire agli sviluppatori di avere il controllo completo.
Correzioni di bug
- Il composable
Viewfinderora funziona correttamente all'interno diPagerdi Compose e conmovableContentOf(), garantendo che la superficie venga reimpostata e gestita correttamente in scenari di UI complessi. (I0d9be, I79432) - È stato risolto un problema su Android 10 e 11 per cui l'elemento
Viewfinderbasato suSurfaceViewpoteva apparire allungato quando venivano applicate trasformazioni. (Icc77c)
Versione 1.5.0-rc01
13 agosto 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.0-rc01, androidx.camera.viewfinder:viewfinder-core:1.5.0-rc01 e androidx.camera.viewfinder:viewfinder-view:1.5.0-rc01 sono stati rilasciati. La versione 1.5.0-rc01 contiene questi commit.
Correzioni di bug
- Spostamento di
minSdkpredefinito dall'API 21 all'API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
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 stati rilasciati. La versione 1.5.0-beta03 contiene questi commit.
Correzioni di bug
- Il valore predefinito di
ImplementationModeperViewfinder(sia basato su Compose che su View) ora seleziona in modo intelligente traEXTERNAL(per il rendimento) eEMBEDDED(per la compatibilità con API precedenti/dispositivi particolari). Questo comportamento può comunque essere sostituito da impostazioni esplicite inViewfinderSurfaceRequesto da attributi XML (nell'API basata su visualizzazione). (Iecd3a) - Gestione migliorata delle sessioni di Surface consentendo di mantenere attivo
ViewfinderSurfaceSessiondurante i cicli di vita di creazione/eliminazione di Surface quando si utilizza TextureView o SurfaceView su API 29+. (I112d9) Viewfinderora garantisce che le superfici vengano rilasciate al momento giusto, solo quando non sono più in uso dalla sessione, anziché sempre quando il componente componibile viene eliminato. PerEXTERNAL(SurfaceView), questo comportamento è attualmente disponibile solo sull'API 29+. PerEMBEDDED(TextureView), questo comportamento è presente in tutti i livelli API. (I9a03f)- Ora
Viewfindergestisce correttamente la sostituzione della superficie in scenari come quando un mirinoEXTERNALa livello API 28 o inferiore si sposta fuori dallo schermo o se unViewfinder(con qualsiasiImplementationMode) fa parte dimoveableContentOf(). (I79432) - Il composable
Viewfinderora funziona correttamente conPagerdi Compose. Questa modifica garantisce che il componente componibile possa essere reimpostato correttamente implementando il callbackonResetdiAndroidView, supportando le implementazioniEMBEDDEDeEXTERNAL. (I0d9be) - Corregge un problema su Android 10/11 in cui
EXTERNALViewfinderpotrebbe 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 stati 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 stati rilasciati. La versione 1.5.0-beta01 contiene questi commit.
- Questa è la prima release beta ufficiale dei mirini basati su visualizzazione e composizione, sufficientemente flessibili da essere utilizzati con Camera2. Se cerchi una View o un elemento componibile da utilizzare con CameraX, consulta
PreviewVieweCameraXViewfinder.
Nuove funzionalità
ContentScaleeAlignmentora possono essere utilizzati nel mirino basato sulla composizione per scalare e posizionare la superficie visualizzata all'interno del contenitore, in modo simile al comportamento diandroidx.compose.foundation.Image. (Ibcea3)
Modifiche alle API
TransformationInfoora ha valori predefiniti per tutti gli argomenti. In questo modo, i mirini possono essere creati senzaTransformationInfo, 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 utilizzaViewfinderInitScopecome destinatario, il che consente di installare un callback per ricevere nuove sessioni di Surface. Queste sessioni di Surface rilasciano automaticamente le risorse detenute dal mirino quando non sono più pertinenti. (Ib2b0d) ViewfinderSurfaceRequest.Builder.populateFromCharacteristicsè stato rimosso e sostituito con un insieme equivalente di API statiche che possono essere utilizzate per generareTransformationInfo, che produrrà la stessa trasformazione dipopulateFromCharacteristics. Questi metodi statici vengono aggiunti alla classeCamera2TransformationInfo. (Idc6af)ViewfinderSurfaceRequestnon 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 inViewfinderViewin 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-viewsono stati spostati nel sottopacchettoandroidx.camera.viewfinder.viewdal pacchettoandroidx.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
ViewfinderSurfaceRequestche non gestiscono più internamente la risposta di Surface. Anziché restituireListenableFuture<Surface>, le APIrequestSurfaceSession()ora restituisconoListenableFuture<ViewfinderSurfaceSession>, che restituisce una classeAutoCloseableche, una volta chiusa, si comporta allo stesso modo della chiamata alla vecchia API diViewfinderSurfaceRequest.markSurfaceSafeToRelease(). In questo modo, le responsabilità tra la richiesta e la risposta della 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 stati 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 stati rilasciati. La versione 1.4.0-alpha12 contiene questi commit.
Nuove funzionalità
- È stato eseguito l'upgrade di
compileSdka 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 configurazionecompileSdk. (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 stati rilasciati. La versione 1.4.0-alpha11 contiene questi commit.
Modifiche alle API
- Le classi
viewfinder-coresono state spostate in pacchetti coerenti con la libreria a cui appartengono. (I431c6) CameraViewfinder.ScaleTypeè stato spostato inviewfinder-corein modo che possa essere riutilizzato con la composizione (I87ef1)- Le classi
CameraViewfinderdeprecate 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 stati 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 stati 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 stati 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-viewandroidx.camera:camera-viewfinder-compose->androidx.camera.viewfinder:viewfinder-composeandroidx.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 una nuova libreria Compose-first in versione alpha: 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.