Kamerasucher

  
Eigenständiges Composable und View-basiertes Viewfinder für die Kamera“

In dieser Tabelle sind alle Artefakte in der Gruppe androidx.camera-viewfinder aufgeführt.

Artefakt Stabile Version Releasekandidat Beta-Ausgabe Alpharelease
viewfinder-compose - - 1.5.0-beta03 1.4.0-alpha13
viewfinder-core - - 1.5.0-beta03 1.4.0-alpha13
Sucheransicht - - 1.5.0-beta03 1.4.0-alpha13
Diese Bibliothek wurde zuletzt am 16. Juli 2025 aktualisiert.

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von „camera-viewfinder“ hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

Fügen Sie der Datei build.gradle für Ihre App oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:

Cool

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")


}

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Lassen Sie es uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können für ein vorhandenes Problem abstimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.

Version 1.5

Version 1.5.0-beta03

16. Juli 2025

androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta03, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta03 und androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03 sind veröffentlicht. Version 1.5.0-beta03 enthält diese Commits.

Fehlerkorrekturen

  • Die Standardeinstellung ImplementationMode für Viewfinder (sowohl Compose- als auch View-basiert) wählt jetzt intelligent zwischen EXTERNAL (für die Leistung) und EMBEDDED (für die Kompatibilität auf älteren APIs/Geräten mit Problemen) aus. Dieses Verhalten kann weiterhin durch explizite Einstellungen in ViewfinderSurfaceRequest oder XML-Attributen (in der View-basierten API) überschrieben werden. (Iecd3a)
  • Verbesserte Verwaltung von Surface-Sitzungen, indem ViewfinderSurfaceSession über den gesamten Lebenszyklus von Surface-Erstellung und -Zerstörung hinweg aktiv gehalten werden kann, wenn TextureView oder SurfaceView unter API 29+ verwendet wird. (I112d9)
  • Der Viewfinder sorgt jetzt dafür, dass Oberflächen zum richtigen Zeitpunkt freigegeben werden, nämlich nur dann, wenn sie nicht mehr von der Sitzung verwendet werden, und nicht immer, wenn das Composable verworfen wird. Für EXTERNAL (SurfaceView) ist dieses Verhalten derzeit nur für API 29 und höher verfügbar. Für EMBEDDED (TextureView) ist dieses Verhalten auf allen API-Ebenen vorhanden. (I9a03f)
  • Die Viewfinder verarbeitet jetzt den Oberflächenersatz in Szenarien wie dem Verschieben eines EXTERNAL-Suchers auf API-Level 28 oder niedriger vom Bildschirm oder wenn eine Viewfinder (mit einer beliebigen ImplementationMode) Teil von moveableContentOf() ist. (I79432)
  • Die zusammensetzbare Funktion Viewfinder funktioniert jetzt korrekt mit Pager von Compose. Durch diese Änderung wird sichergestellt, dass das Composable durch die Implementierung des onReset-Rückrufs von AndroidView erfolgreich zurückgesetzt werden kann. Dabei werden sowohl EMBEDDED- als auch EXTERNAL-Implementierungen unterstützt. (I0d9be)
  • Es wurde ein Problem unter Android 10/11 behoben, bei dem das EXTERNAL Viewfinder aufgrund von Transformationsvorgängen (z. B. Skalieren oder Übersetzen), die zu früh angewendet wurden, gestreckt oder falsch dargestellt werden konnte. Das System wartet nun, bis die Oberfläche erstellt wurde, bevor diese Transformationen in der Layoutphase angewendet werden. So wird eine korrekte Ausgabe gewährleistet. (Icc77c)

Version 1.5.0-beta02

4. Juni 2025

androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta02, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta02 und androidx.camera.viewfinder:viewfinder-view:1.5.0-beta02 sind veröffentlicht. Version 1.5.0-beta02 enthält diese Commits.

Version 1.5.0-beta01

7. Mai 2025

androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta01, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta01 und androidx.camera.viewfinder:viewfinder-view:1.5.0-beta01 sind veröffentlicht. Version 1.5.0-beta01 enthält diese Commits.

  • Dies ist die erste offizielle Betaversion der ansichts- und Compose-basierten Sucher, die flexibel genug sind, um mit Camera2 verwendet zu werden. Wenn Sie eine View oder ein Composable für die Verwendung mit CameraX suchen, sehen Sie sich PreviewView und CameraXViewfinder an.

Neue Funktionen

  • ContentScale und Alignment können jetzt im Compose-basierten Sucher verwendet werden, um die angezeigte Oberfläche innerhalb des Containers zu skalieren und zu platzieren, ähnlich wie bei androidx.compose.foundation.Image. (Ibcea3)

API-Änderungen

  • TransformationInfo hat jetzt Standardwerte für alle Argumente. So können Viewfinder ohne TransformationInfo erstellt werden. In diesem Fall wird standardmäßig eine Quellrotation von 0, keine Quellspiegelung und kein Zuschneidebereich verwendet. (I2b1b2)
  • Composable Viewfinder verwendet jetzt ein nachgestelltes Lambda, um eine Surface-Sitzung zu empfangen, ähnlich wie AndroidExternalSurface. Die bereitgestellte Lambda-Funktion verwendet ViewfinderInitScope als Empfänger, sodass ein Callback installiert werden kann, um neue Surface-Sitzungen zu empfangen. Bei diesen Sitzungen werden Ressourcen, die vom Viewfinder gehalten werden, automatisch freigegeben, wenn sie nicht mehr benötigt werden. (Ib2b0d)
  • ViewfinderSurfaceRequest.Builder.populateFromCharacteristics wurde entfernt und durch eine entsprechende Gruppe statischer APIs ersetzt, mit denen TransformationInfo generiert werden kann. Dadurch wird dieselbe Transformation wie bei populateFromCharacteristics erzielt. Diese statischen Methoden werden der Klasse Camera2TransformationInfo hinzugefügt. (Idc6af)
  • ViewfinderSurfaceRequest enthält keine asynchronen APIs mehr zum Abrufen der Oberfläche. Er ist jetzt ein unveränderlicher Datentyp. APIs zum Abrufen der Oberfläche wurden in den Sucher verschoben. (I30127)
  • CameraViewfinder wurde in ViewfinderView umbenannt, damit die Benennung mit der Benennung des Viewfinder-Composable übereinstimmt und darauf hingewiesen wird, dass es nicht nur mit Kamerabildquellen verwendet werden kann. (Id9e6b)
  • Klassen aus viewfinder-view wurden aus dem Paket androidx.camera.viewfinder in das Unterpaket androidx.camera.viewfinder.view verschoben. (I6cb44)
  • Dem Viewfinder auf Grundlage von Ansichten wurden neue APIs hinzugefügt, mit denen die Quellrotation, das Spiegeln und das Zuschneiderechteck festgelegt werden können. Diese TransformationInfo-Klasse ist dieselbe Klasse, die vom Compose-basierten Viewfinder verwendet wird. (I907c3)
  • Der ansichtbasierte Viewfinder verwendet jetzt neue ViewfinderSurfaceRequest-APIs, die die Surface-Antwort nicht mehr intern verarbeiten. Anstatt ListenableFuture<Surface> zurückzugeben, geben die requestSurfaceSession()-APIs jetzt ListenableFuture<ViewfinderSurfaceSession> zurück, was eine AutoCloseable-Klasse zurückgibt, die sich beim Schließen genauso verhält wie beim Aufrufen der alten API von ViewfinderSurfaceRequest.markSurfaceSafeToRelease(). Dadurch werden die Verantwortlichkeiten zwischen der Oberflächenanfrage und der Oberflächenantwort klarer getrennt. (I19041)

Version 1.4

Version 1.4.0-alpha13

26. Februar 2025

androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha13, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha13 und androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha13 sind veröffentlicht. Version 1.4.0-alpha13 enthält diese Commits.

Version 1.4.0-alpha12

15. Januar 2025

androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha12, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha12 und androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha12 sind veröffentlicht. Version 1.4.0-alpha12 enthält diese Commits.

Neue Funktionen

  • compileSdk wurde auf 35 aktualisiert, um die API für Android 15 zu verwenden. Apps, die CameraX-Bibliotheken verwenden, müssen auch ihre compileSdk-Konfigurationseinstellung aktualisieren. (Ic80cd)
  • In dieser Bibliothek werden jetzt JSpecify-Nullable-Annotationen verwendet, die typbezogen sind. Kotlin-Entwickler sollten das folgende Compiler-Argument verwenden, um die korrekte Verwendung zu erzwingen: -Xjspecify-annotations=strict (dies ist die Standardeinstellung ab Version 2.1.0 des Kotlin-Compilers). (I7bcd7, b/326456246)

Version 1.4.0-alpha11

11. Dezember 2024

androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha11, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha11 und androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha11 sind veröffentlicht. Version 1.4.0-alpha11 enthält diese Commits.

API-Änderungen

  • viewfinder-core-Klassen wurden in Pakete verschoben, die mit der Bibliothek übereinstimmen, zu der sie gehören. (I431c6)
  • CameraViewfinder.ScaleType wurde in viewfinder-core verschoben, damit es mit Compose wiederverwendet werden kann (I87ef1).
  • Die eingestellten CameraViewfinder-Klassen werden entfernt. Verwenden Sie die neuen APIs, die eine entsprechende Funktionalität bieten. (I6e59a)

Version 1.4.0-alpha10

30. Oktober 2024

androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha10, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha10 und androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha10 sind veröffentlicht. Version 1.4.0-alpha10 enthält diese Commits.

Version 1.4.0-alpha09

2. Oktober 2024

androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha09, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha09 und androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha09 sind veröffentlicht. Version 1.4.0-alpha09 enthält diese Commits.

Version 1.4.0-alpha08

4. September 2024

androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha08, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha08 und androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha08 sind veröffentlicht. Version 1.4.0-alpha08 enthält diese Commits.

Neue Funktionen

Mit dem Update auf 1.4.0-alpha08 wurde das CameraX-Viewfinder-Artefakt in eine eigene Bibliotheksgruppe verschoben. Diese Änderung ist erforderlich, um die Modularität und Wartungsfreundlichkeit der CameraX-Bibliothek zu verbessern.

Wenn Sie zuvor androidx.camera:camera-viewfinder, androidx.camera:camera-viewfinder-compose oder androidx.camera:camera-viewfinder-core verwendet haben, müssen Sie Ihre Abhängigkeiten auf Folgendes umstellen:

  • 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

Für diese Umstellung sind keine Codeänderungen erforderlich. Die alten Viewfinder-Maven-Koordinaten werden nicht mehr aktualisiert.

Wenn Sie Compose mit CameraX verwenden, ist jetzt außerdem eine neue Compose-first-Bibliothek in der Alphaversion verfügbar: androidx.camera:camera-compose. Dadurch wird das zusammensetzbare CameraXViewfinder bereitgestellt, ein Compose-idiomatischer Viewfinder, der SurfaceRequest von CameraX an Compose anpasst, ähnlich wie PreviewView für Ansichten funktioniert.