viseur de l'appareil photo
Ce tableau présente tous les artefacts du groupe androidx.camera-viewfinder.
| Artefact | Version stable | Version finale | Version bêta | Version 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 |
Déclarer des dépendances
Pour ajouter une dépendance à camera-viewfinder, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.
Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou de votre module :
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") }
Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.
Commentaires
Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.
Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.
Version 1.6
Version 1.6.0-alpha01
22 octobre 2025
Publication d'androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01, androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01 et androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha01. La version 1.6.0-alpha01 contient ces commits.
Modifications apportées à l'API
- Exposition du
ImplementationModepar défaut du viseur via la nouvelle API publiqueViewfinderDefaults.implementationMode. Il est désormais utilisé par défaut pourViewfinderViewet le composableViewfinder. (Ic3f52)
Version 1.5
Version 1.5.1
8 octobre 2025
Publication d'androidx.camera.viewfinder:viewfinder-compose:1.5.1, androidx.camera.viewfinder:viewfinder-core:1.5.1 et androidx.camera.viewfinder:viewfinder-view:1.5.1. La version 1.5.1 contient ces commits.
Version 1.5.0
10 septembre 2025
Publication d'androidx.camera.viewfinder:viewfinder-compose:1.5.0, androidx.camera.viewfinder:viewfinder-core:1.5.0 et androidx.camera.viewfinder:viewfinder-view:1.5.0. La version 1.5.0 contient ces commits.
Changements importants depuis la version 1.4.0 :
Il s'agit de la première version stable de la bibliothèque Camera Viewfinder, qui fournit des API robustes, conscientes du cycle de vie et faciles à utiliser, basées sur View et Compose. Ces composants sont conçus pour servir de viseur de caméra et peuvent être intégrés directement à Camera2.
Cette version établit également les bases du nouvel artefact androidx.camera:camera-compose, qui introduit CameraXViewfinder, un viseur idiomatique Compose qui s'intègre parfaitement à SurfaceRequest CameraX, de la même manière que PreviewView fonctionne pour les mises en page basées sur les vues. Voici quelques-unes des modifications les plus importantes :
- Relocalisation des artefacts : pour améliorer la modularité, les artefacts Viewfinder ont été déplacés vers leur propre groupe de bibliothèques. Les développeurs qui utilisaient auparavant les dépendances
androidx.camera:camera-viewfinder*doivent migrer versandroidx.camera.viewfinder:viewfinder-*. - Stabilisation et améliorations de l'API : la surface de l'API a été améliorée pour cette version stable. Cela inclut le renommage de
CameraViewfinderenViewfinderViewpour mieux refléter sa polyvalence, la réorganisation des packages pour plus de clarté et la transformation deViewfinderSurfaceRequesten type de données immuable pour une gestion de l'état plus prévisible. - Mises à jour de l'API Compose : l'API Compose
Viewfinderest désormais compatible avecContentScaleetAlignmentpour un contrôle précis de la façon dont le flux de la caméra est affiché dans son conteneur, ce qui reflète le comportement du composableandroidx.compose.foundation.Imagestandard. - Gestion du cycle de vie de Surface :
ViewfinderSurfaceSessionest désormais maintenu en vie lors des changements de configuration et des événements de cycle de vie sur l'API 29 et versions ultérieures. Cette modification vise à réduire les pertes d'images et à offrir une expérience utilisateur plus fluide. - Valeurs par défaut du mode d'implémentation :
Viewfinderest désormais défini par défaut sur unImplementationModeintelligent qui sélectionne automatiquement la meilleure implémentation sous-jacente. Il privilégie le modeSurfaceViewhautes performances (modeEXTERNAL) et revient au modeTextureViewplus compatible (modeEMBEDDED) sur les anciens niveaux d'API ou les appareils présentant des problèmes de compatibilité connus. Ce comportement peut toujours être remplacé pour un contrôle complet du développeur.
Correction de bugs
- Le composable
Viewfinderfonctionne désormais correctement dansPagerde Compose et avecmovableContentOf(), ce qui garantit que la surface est correctement réinitialisée et gérée dans les scénarios d'UI complexes. (I0d9be, I79432) - Correction d'un problème sur Android 10 et 11 où le
Viewfinderbasé surSurfaceViewpouvait apparaître étiré lorsque des transformations étaient appliquées. (Icc77c)
Version 1.5.0-rc01
13 août 2025
Publication d'androidx.camera.viewfinder:viewfinder-compose:1.5.0-rc01, androidx.camera.viewfinder:viewfinder-core:1.5.0-rc01 et androidx.camera.viewfinder:viewfinder-view:1.5.0-rc01. La version 1.5.0-rc01 contient ces commits.
Correction de bugs
- Déplacement de la
minSdkpar défaut de l'API 21 vers l'API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
Version 1.5.0-beta03
16 juillet 2025
Publication d'androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta03, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta03 et androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03. La version 1.5.0-beta03 contient ces commits.
Correction de bugs
- La valeur
ImplementationModepar défaut pourViewfinder(basée sur Compose et sur les vues) sélectionne désormais de manière intelligenteEXTERNAL(pour les performances) ouEMBEDDED(pour la compatibilité avec les anciennes API/les appareils originaux). Ce comportement peut toujours être remplacé par des paramètres explicites dansViewfinderSurfaceRequestou des attributs XML (sur l'API basée sur les vues). (Iecd3a) - Amélioration de la gestion des sessions Surface en permettant à
ViewfinderSurfaceSessionde rester actif tout au long des cycles de vie de création/destruction de surface lors de l'utilisation de TextureView ou SurfaceView sur l'API 29 ou version ultérieure. (I112d9) Viewfindergarantit désormais que les Surfaces sont libérées au bon moment, uniquement lorsqu'elles ne sont plus utilisées par la session, plutôt que d'être libérées systématiquement lorsque le composable est supprimé. PourEXTERNAL(SurfaceView), ce comportement n'est actuellement disponible qu'à partir de l'API 29. PourEMBEDDED(TextureView), ce comportement est présent à tous les niveaux d'API. (I9a03f)Viewfindergère désormais correctement le remplacement de surface dans des scénarios tels que lorsqu'un viseurEXTERNALsur le niveau d'API 28 ou inférieur se déplace hors écran ou si unViewfinder(avec n'importe quelImplementationMode) fait partie demoveableContentOf(). (I79432)- Le composable
Viewfinderfonctionne désormais correctement avecPagerde Compose. Cette modification garantit que le composable peut être réinitialisé avec succès en implémentant le rappelonResetdeAndroidView, en prenant en charge les implémentationsEMBEDDEDetEXTERNAL. (I0d9be) - Correction d'un problème sur Android 10/11 où le
EXTERNALViewfinderpouvait apparaître étiré ou incorrect en raison d'opérations de transformation (comme la mise à l'échelle ou la translation) appliquées trop tôt. Le système attend désormais que la surface soit créée avant d'appliquer ces transformations lors de la phase de mise en page, ce qui garantit un résultat correct. (Icc77c)
Version 1.5.0-beta02
4 juin 2025
Publication d'androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta02, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta02 et androidx.camera.viewfinder:viewfinder-view:1.5.0-beta02. La version 1.5.0-beta02 contient ces commits.
Version 1.5.0-beta01
7 mai 2025
Publication d'androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta01, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta01 et androidx.camera.viewfinder:viewfinder-view:1.5.0-beta01. La version 1.5.0-beta01 contient ces commits.
- Il s'agit de la première version bêta officielle des viseurs basés sur des vues et sur Compose, qui sont suffisamment flexibles pour être utilisés avec Camera2. Si vous recherchez une vue ou un composable à utiliser avec CameraX, consultez
PreviewViewetCameraXViewfinder.
Nouvelles fonctionnalités
ContentScaleetAlignmentpeuvent désormais être utilisés dans le viseur basé sur Compose pour mettre à l'échelle et placer la surface affichée dans son conteneur, de la même manière queandroidx.compose.foundation.Image. (Ibcea3)
Modifications apportées à l'API
TransformationInfopossède désormais des valeurs par défaut pour tous les arguments. Cela permettra de créer des viseurs sansTransformationInfo, qui seront définis par défaut sur une rotation de source de 0, sans mise en miroir de la source et sans rectangle de recadrage. (I2b1b2)- Le composable Viewfinder accepte désormais un lambda de fin pour recevoir une session Surface, comme
AndroidExternalSurface. Le lambda fourni utiliseViewfinderInitScopecomme récepteur, ce qui permet d'installer un rappel pour recevoir de nouvelles sessions Surface. Ces sessions de surface libèrent automatiquement les ressources détenues par le Viewfinder lorsqu'elles sont hors champ d'application. (Ib2b0d) ViewfinderSurfaceRequest.Builder.populateFromCharacteristicsa été supprimé et remplacé par un ensemble équivalent d'API statiques qui peuvent être utilisées pour générerTransformationInfo, ce qui produira la même transformation quepopulateFromCharacteristics. Ces méthodes statiques sont ajoutées à la classeCamera2TransformationInfo. (Idc6af)ViewfinderSurfaceRequestn'inclut plus d'API asynchrones pour récupérer la surface. Il s'agit désormais d'un type de données immuable. Les API permettant de récupérer la surface sont désormais déplacées vers le viseur. (I30127)CameraViewfindera été renomméViewfinderViewpour que le nom soit aligné sur celui du composable Viewfinder et pour indiquer qu'il peut être utilisé avec plus que de simples sources de caméras. (Id9e6b)- Les classes de
viewfinder-viewont été déplacées vers le sous-packageandroidx.camera.viewfinder.viewdu packageandroidx.camera.viewfinder. (I6cb44) - De nouvelles API sont ajoutées au viseur basé sur la vue, ce qui permet de définir la rotation, la mise en miroir et le rectangle de recadrage de la source. Cette classe
TransformationInfoest la même que celle utilisée par Viewfinder basé sur Compose. (I907c3) - Le Viewfinder basé sur les vues utilise désormais de nouvelles API
ViewfinderSurfaceRequestqui ne gèrent plus la réponse Surface en interne. Au lieu de renvoyerListenableFuture<Surface>, les APIrequestSurfaceSession()renvoient désormaisListenableFuture<ViewfinderSurfaceSession>, qui renvoie une classeAutoCloseablequi, une fois fermée, se comporte de la même manière que l'ancienne APIViewfinderSurfaceRequest.markSurfaceSafeToRelease(). Cela permet de mieux séparer les responsabilités entre la requête et la réponse de surface. (I19041)
Version 1.4
Version 1.4.0-alpha13
26 février 2025
Publication d'androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha13, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha13 et androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha13. La version 1.4.0-alpha13 contient ces commits.
Version 1.4.0-alpha12
15 janvier 2025
Publication d'androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha12, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha12 et androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha12. La version 1.4.0-alpha12 contient ces commits.
Nouvelles fonctionnalités
- Mise à niveau de
compileSdkà 35 pour l'utilisation de l'API associée à Android 15. Les applications qui utilisent les bibliothèques CameraX devront également mettre à niveau leur paramètre de configurationcompileSdk. (Ic80cd) - Cette bibliothèque utilise désormais les annotations de nullité JSpecify, qui sont de type "type-use". Les développeurs Kotlin doivent utiliser l'argument de compilateur suivant pour garantir une utilisation correcte :
-Xjspecify-annotations=strict(il s'agit de la valeur par défaut à partir de la version 2.1.0 du compilateur Kotlin). (I7bcd7, b/326456246)
Version 1.4.0-alpha11
11 décembre 2024
Publication d'androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha11, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha11 et androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha11. La version 1.4.0-alpha11 contient ces commits.
Modifications apportées à l'API
- Les classes
viewfinder-coreont été déplacées dans des packages cohérents avec la bibliothèque à laquelle elles appartiennent. (I431c6) CameraViewfinder.ScaleTypea été déplacé versviewfinder-coreafin de pouvoir être réutilisé avec Compose. (I87ef1)- Suppression des classes
CameraViewfinderobsolètes. Veuillez utiliser les nouvelles API qui offrent des fonctionnalités équivalentes. (I6e59a)
Version 1.4.0-alpha10
30 octobre 2024
Publication d'androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha10, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha10 et androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha10. La version 1.4.0-alpha10 contient ces commits.
Version 1.4.0-alpha09
2 octobre 2024
Publication d'androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha09, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha09 et androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha09. La version 1.4.0-alpha09 contient ces commits.
Version 1.4.0-alpha08
4 septembre 2024
Publication d'androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha08, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha08 et androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha08. La version 1.4.0-alpha08 contient ces commits.
Nouvelles fonctionnalités
Avec la mise à jour vers la version 1.4.0-alpha08, l'artefact CameraX Viewfinder a été déplacé vers son propre groupe de bibliothèques. Cette modification est nécessaire pour améliorer la modularité et la facilité de maintenance de la bibliothèque CameraX.
Si vous dépendiez auparavant de androidx.camera:camera-viewfinder, androidx.camera:camera-viewfinder-compose ou androidx.camera:camera-viewfinder-core, vous devrez migrer vos dépendances vers les éléments suivants :
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
Aucune modification de code ne devrait être nécessaire pour effectuer cette transition. Les anciennes coordonnées Maven de Viewfinder ne seront plus mises à jour.
De plus, si vous utilisez Compose avec CameraX, une nouvelle bibliothèque Compose-first est désormais disponible en version alpha : androidx.camera:camera-compose. Cela fournit le composable CameraXViewfinder, qui est un viseur idiomatique Compose qui adapte SurfaceRequest de CameraX à Compose, de la même manière que PreviewView fonctionne pour les vues.