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.0 | - | - | 1.4.0-alpha13 |
viewfinder-core | 1.5.0 | - | - | 1.4.0-alpha13 |
viewfinder-view | 1.5.0 | - | - | 1.4.0-alpha13 |
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.5.0" implementation "androidx.camera.viewfinder:viewfinder-compose:1.5.0" implementation "androidx.camera.viewfinder:viewfinder-core:1.5.0" }
Kotlin
dependencies { // Use to implement camera viewfinders implementation("androidx.camera.viewfinder:viewfinder-view:1.5.0") implementation("androidx.camera.viewfinder:viewfinder-core:1.5.0") implementation("androidx.camera.viewfinder:viewfinder-compose:1.5.0") }
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.5
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 Camera Viewfinder, 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 CameraX SurfaceRequest
, 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
CameraViewfinder
inViewfinderView
per riflettere meglio la sua versatilità, la riorganizzazione dei pacchetti per maggiore chiarezza e la trasformazione diViewfinderSurfaceRequest
in un tipo di dati immutabile per una gestione dello stato più prevedibile. - Aggiornamenti dell'API Compose: l'API Compose
Viewfinder
ora supportaContentScale
eAlignment
per un controllo granulare su come viene visualizzato lo stream della videocamera all'interno del suo contenitore, rispecchiando il comportamento del composableandroidx.compose.foundation.Image
standard. - Surface Lifecycle Management:
ViewfinderSurfaceSession
ora 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
Viewfinder
è impostato per impostazione predefinita su unImplementationMode
intelligente che seleziona automaticamente l'implementazione sottostante migliore. 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
Viewfinder
ora funziona correttamente all'interno diPager
di 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
Viewfinder
basato suSurfaceView
poteva 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
minSdk
predefinito 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
ImplementationMode
predefinito perViewfinder
(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 inViewfinderSurfaceRequest
o da attributi XML (nell'API basata su View). (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. PerEXTERNAL
(SurfaceView
), questo comportamento è attualmente disponibile solo sull'API 29+. PerEMBEDDED
(TextureView
), questo comportamento è presente in tutti i livelli API. (I9a03f) - Ora
Viewfinder
gestisce correttamente la sostituzione della superficie in scenari come quando un mirinoEXTERNAL
a livello API 28 o inferiore si sposta fuori dallo schermo o se unViewfinder
(con qualsiasiImplementationMode
) fa parte dimoveableContentOf()
. (I79432) - Il composable
Viewfinder
ora funziona correttamente conPager
di Compose. Questa modifica garantisce che il componente componibile possa essere reimpostato correttamente implementando il callbackonReset
diAndroidView
, supportando le implementazioniEMBEDDED
eEXTERNAL
. (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 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
PreviewView
eCameraXViewfinder
.
Nuove funzionalità
ContentScale
eAlignment
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 diandroidx.compose.foundation.Image
. (Ibcea3)
Modifiche alle API
TransformationInfo
ora 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 utilizzaViewfinderInitScope
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 generareTransformationInfo
, che produrrà la stessa trasformazione dipopulateFromCharacteristics
. Questi metodi statici vengono aggiunti alla classeCamera2TransformationInfo
. (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 inViewfinderView
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 sottopacchettoandroidx.camera.viewfinder.view
dal 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
ViewfinderSurfaceRequest
che non gestiscono più internamente la risposta di Surface. Anziché restituireListenableFuture<Surface>
, le APIrequestSurfaceSession()
ora restituisconoListenableFuture<ViewfinderSurfaceSession>
, che restituisce una classeAutoCloseable
che, 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
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 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-core
sono state spostate in pacchetti coerenti con la libreria a cui appartengono. (I431c6) CameraViewfinder.ScaleType
è stato spostato inviewfinder-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 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-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 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.