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.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 |
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.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") }
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.5
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
ImplementationMode
par 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 dansViewfinderSurfaceRequest
ou des attributs XML (sur l'API basée sur les vues). (Iecd3a) - Amélioration de la gestion des sessions Surface en permettant à
ViewfinderSurfaceSession
de 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) Viewfinder
garantit 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'avec l'API 29 et les versions ultérieures. PourEMBEDDED
(TextureView
), ce comportement est présent à tous les niveaux d'API. (I9a03f)Viewfinder
gère désormais correctement le remplacement de surface dans des scénarios tels que lorsqu'un viseurEXTERNAL
sur 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
Viewfinder
fonctionne désormais correctement avecPager
de Compose. Cette modification garantit que le composable peut être réinitialisé avec succès en implémentant le rappelonReset
deAndroidView
, en prenant en charge les implémentationsEMBEDDED
etEXTERNAL
. (I0d9be) - Correction d'un problème sur Android 10/11 où le
EXTERNAL
Viewfinder
pouvait 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
PreviewView
etCameraXViewfinder
.
Nouvelles fonctionnalités
ContentScale
etAlignment
peuvent 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
TransformationInfo
possè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 utiliseViewfinderInitScope
comme 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.populateFromCharacteristics
a é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)ViewfinderSurfaceRequest
n'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)CameraViewfinder
a été renomméViewfinderView
pour que le nom soit aligné sur celui du composable Viewfinder et pour indiquer qu'il peut être utilisé avec plus que des sources de caméras. (Id9e6b)- Les classes de
viewfinder-view
ont été déplacées vers le sous-packageandroidx.camera.viewfinder.view
du packageandroidx.camera.viewfinder
. (I6cb44) - De nouvelles API sont ajoutées au viseur basé sur les vues, ce qui permet de définir la rotation de la source, la mise en miroir et le rectangle de recadrage. Cette classe
TransformationInfo
est la même que celle utilisée par Viewfinder basé sur Compose. (I907c3) - Le viseur basé sur la vue utilise désormais de nouvelles API
ViewfinderSurfaceRequest
qui ne gèrent plus la réponse Surface en interne. Au lieu de renvoyerListenableFuture<Surface>
, les APIrequestSurfaceSession()
renvoient désormaisListenableFuture<ViewfinderSurfaceSession>
, qui renvoie une classeAutoCloseable
qui, 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-core
ont été déplacées dans des packages cohérents avec la bibliothèque à laquelle elles appartiennent. (I431c6) CameraViewfinder.ScaleType
a été déplacé versviewfinder-core
afin de pouvoir être réutilisé avec Compose. (I87ef1)- Suppression des classes
CameraViewfinder
obsolè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 transférer vos dépendances vers les éléments suivants :
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
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.