viseur de l'appareil photo

  
Viseur autonome basé sur un composable et une vue pour 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
Dernière mise à jour de la bibliothèque : 16 juillet 2025

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.

Signaler un nouveau problème

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 pour Viewfinder (basée sur Compose et sur les vues) sélectionne désormais de manière intelligente EXTERNAL (pour les performances) ou EMBEDDED (pour la compatibilité avec les anciennes API/les appareils originaux). Ce comportement peut toujours être remplacé par des paramètres explicites dans ViewfinderSurfaceRequest 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é. Pour EXTERNAL (SurfaceView), ce comportement n'est actuellement disponible qu'avec l'API 29 et les versions ultérieures. Pour EMBEDDED (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 viseur EXTERNAL sur le niveau d'API 28 ou inférieur se déplace hors écran ou si un Viewfinder (avec n'importe quel ImplementationMode) fait partie de moveableContentOf(). (I79432)
  • Le composable Viewfinder fonctionne désormais correctement avec Pager de Compose. Cette modification garantit que le composable peut être réinitialisé avec succès en implémentant le rappel onReset de AndroidView, en prenant en charge les implémentations EMBEDDED et EXTERNAL. (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 et CameraXViewfinder.

Nouvelles fonctionnalités

  • ContentScale et Alignment 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 que androidx.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 sans TransformationInfo, 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 utilise ViewfinderInitScope 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érer TransformationInfo, ce qui produira la même transformation que populateFromCharacteristics. Ces méthodes statiques sont ajoutées à la classe Camera2TransformationInfo. (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-package androidx.camera.viewfinder.view du package androidx.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 renvoyer ListenableFuture<Surface>, les API requestSurfaceSession() renvoient désormais ListenableFuture<ViewfinderSurfaceSession>, qui renvoie une classe AutoCloseable qui, une fois fermée, se comporte de la même manière que l'ancienne API ViewfinderSurfaceRequest.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 configuration compileSdk. (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é vers viewfinder-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.