wizjer aparatu,

  
Samodzielny komponent Composable i wizjer oparty na widoku dla aparatu”.

Ta tabela zawiera listę wszystkich artefaktów w grupie androidx.camera-viewfinder.

Artefakt Wersja stabilna Wersja kandydująca do publikacji Wersja beta Wersja alfa
viewfinder-compose 1.6.1 - - 1.7.0-alpha02
viewfinder-core 1.6.1 - - 1.7.0-alpha02
widok z wizjera 1.6.1 - - 1.7.0-alpha02
Ostatnia aktualizacja tej biblioteki: 1 lipca 2026 r.

Deklarowanie zależności

Aby dodać zależność od biblioteki camera-viewfinder, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w artykule Repozytorium Maven Google.

Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:

Groovy

dependencies {
    // Use to implement camera viewfinders
    
    implementation "androidx.camera.viewfinder:viewfinder-view:1.7.0-alpha02"
    implementation "androidx.camera.viewfinder:viewfinder-compose:1.7.0-alpha02"
    implementation "androidx.camera.viewfinder:viewfinder-core:1.7.0-alpha02"

}

Kotlin

dependencies {
    // Use to implement camera viewfinders
    implementation("androidx.camera.viewfinder:viewfinder-view:1.7.0-alpha02")
    implementation("androidx.camera.viewfinder:viewfinder-core:1.7.0-alpha02")
    implementation("androidx.camera.viewfinder:viewfinder-compose:1.7.0-alpha02")


}

Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.

Prześlij opinię

Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz oddać głos na istniejący problem, klikając przycisk gwiazdki.

Tworzenie nowego problemu

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Wersja 1.7

Wersja 1.7.0-alpha02

1 lipca 2026 r.

androidx.camera.viewfinder:viewfinder-compose:1.7.0-alpha02, androidx.camera.viewfinder:viewfinder-core:1.7.0-alpha02androidx.camera.viewfinder:viewfinder-view:1.7.0-alpha02 są zwalniane. Wersja 1.7.0-alpha02 zawiera te zmiany.

Zmiany w interfejsie API

  • CameraXViewfinder obsługuje teraz wbudowane gesty rozsuwania i ściągania palcami w celu powiększania oraz dotykania w celu ustawiania ostrości, a także funkcje błysku ekranu i stanu strumienia. FocusState jest teraz publiczny w viewfinder-core, co umożliwia monitorowanie wyników funkcji dotknij, aby ustawić ostrość. (I66a17, b/522549890)
  • Dodano właściwość TransformationMode do TransformationInfo, aby umożliwić aplikacjom korzystanie z potoku OpenGL w trybie EMBEDDED. (Id1de1, b/487826941)

Poprawki błędów

  • Usuń wymaganie dotyczące compileSdk 37 (If78b4)

Wersja 1.7.0-alpha01

11 marca 2026 r.

androidx.camera.viewfinder:viewfinder-compose:1.7.0-alpha01, androidx.camera.viewfinder:viewfinder-core:1.7.0-alpha01androidx.camera.viewfinder:viewfinder-view:1.7.0-alpha01 są zwalniane. Wersja 1.7.0-alpha01 zawiera te zmiany.

Wersja 1.6

Wersja 1.6.1

6 maja 2026 r.

androidx.camera.viewfinder:viewfinder-compose:1.6.1, androidx.camera.viewfinder:viewfinder-core:1.6.1androidx.camera.viewfinder:viewfinder-view:1.6.1 są zwalniane. Wersja 1.6.1 zawiera te zmiany.

Wersja 1.6.0

25 marca 2026 r.

androidx.camera.viewfinder:viewfinder-compose:1.6.0, androidx.camera.viewfinder:viewfinder-core:1.6.0androidx.camera.viewfinder:viewfinder-view:1.6.0 są zwalniane. Wersja 1.6.0 zawiera te zmiany.

Ważne zmiany od wersji 1.5.0:

  • Udostępniliśmy domyślny wizjer ImplementationMode za pomocą nowego publicznego interfejsu API ViewfinderDefaults.implementationMode. Jest ona teraz używana domyślnie zarówno w przypadku funkcji ViewfinderView, jak i komponentu Viewfinder. (Ic3f52)

Wersja 1.6.0-rc01

25 lutego 2026 r.

androidx.camera.viewfinder:viewfinder-compose:1.6.0-rc01, androidx.camera.viewfinder:viewfinder-core:1.6.0-rc01androidx.camera.viewfinder:viewfinder-view:1.6.0-rc01 są zwalniane. Wersja 1.6.0-rc01 zawiera te zmiany.

Wersja 1.6.0-beta02

11 lutego 2026 r.

androidx.camera.viewfinder:viewfinder-compose:1.6.0-beta02, androidx.camera.viewfinder:viewfinder-core:1.6.0-beta02androidx.camera.viewfinder:viewfinder-view:1.6.0-beta02 są zwalniane. Wersja 1.6.0-beta02 zawiera te zmiany.

Wersja 1.6.0-beta01

28 stycznia 2026 r.

androidx.camera.viewfinder:viewfinder-compose:1.6.0-beta01, androidx.camera.viewfinder:viewfinder-core:1.6.0-beta01androidx.camera.viewfinder:viewfinder-view:1.6.0-beta01 są zwalniane. Wersja 1.6.0-beta01 zawiera te zmiany.

Wersja 1.6.0-alpha02

17 grudnia 2025 r.

androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha02, androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha02androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha02 są zwalniane. Wersja 1.6.0-alpha02 zawiera te zmiany.

Wersja 1.6.0-alpha01

22 października 2025 r.

androidx.camera.viewfinder:viewfinder-compose:1.6.0-alpha01, androidx.camera.viewfinder:viewfinder-core:1.6.0-alpha01androidx.camera.viewfinder:viewfinder-view:1.6.0-alpha01 są zwalniane. Wersja 1.6.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • Udostępniliśmy domyślny wizjer ImplementationMode za pomocą nowego publicznego interfejsu API ViewfinderDefaults.implementationMode. Jest ona teraz używana domyślnie zarówno w przypadku funkcji ViewfinderView, jak i komponentu Viewfinder. (Ic3f52)

Wersja 1.5

Wersja 1.5.3

28 stycznia 2026 r.

androidx.camera.viewfinder:viewfinder-compose:1.5.3, androidx.camera.viewfinder:viewfinder-core:1.5.3androidx.camera.viewfinder:viewfinder-view:1.5.3 są zwalniane. Wersja 1.5.3 zawiera te zmiany.

Wersja 1.5.2

4 grudnia 2025 r.

androidx.camera.viewfinder:viewfinder-compose:1.5.2, androidx.camera.viewfinder:viewfinder-core:1.5.2androidx.camera.viewfinder:viewfinder-view:1.5.2 są zwalniane. Wersja 1.5.2 zawiera te zmiany.

Wersja 1.5.1

8 października 2025 r.

androidx.camera.viewfinder:viewfinder-compose:1.5.1, androidx.camera.viewfinder:viewfinder-core:1.5.1androidx.camera.viewfinder:viewfinder-view:1.5.1 są zwalniane. Wersja 1.5.1 zawiera te zmiany.

Wersja 1.5.0

10 września 2025 r.

androidx.camera.viewfinder:viewfinder-compose:1.5.0, androidx.camera.viewfinder:viewfinder-core:1.5.0androidx.camera.viewfinder:viewfinder-view:1.5.0 są zwalniane. Wersja 1.5.0 zawiera te zmiany.

Ważne zmiany od wersji 1.4.0:

Jest to pierwsza stabilna wersja biblioteki wizjera aparatu, która udostępnia niezawodne, uwzględniające cykl życia i łatwe w użyciu interfejsy API oparte na widokach i komponowaniu. Te komponenty są przeznaczone do pełnienia funkcji wizjera aparatu i można je zintegrować bezpośrednio z Camera2.

Ta wersja stanowi też podstawę nowego artefaktu androidx.camera:camera-compose, który wprowadza CameraXViewfinder, czyli wizjer zgodny z Compose, który bezproblemowo integruje się z SurfaceRequest CameraX, podobnie jak PreviewView w przypadku układów opartych na widokach. Oto niektóre z najważniejszych zmian:

  • Przeniesienie artefaktów: aby zwiększyć modułowość, artefakty wizjera zostały przeniesione do własnej grupy bibliotek. Deweloperzy, którzy wcześniej korzystali z zależności androidx.camera:camera-viewfinder*, powinni przejść na androidx.camera.viewfinder:viewfinder-*.
  • Stabilizacja i ulepszenia interfejsu API: w tej stabilnej wersji interfejs API został dopracowany. Obejmuje to zmianę nazwy CameraViewfinder na ViewfinderView, aby lepiej odzwierciedlała jego wszechstronność, reorganizację pakietów w celu zwiększenia przejrzystości oraz przekształcenie ViewfinderSurfaceRequest w niezmienny typ danych, co ułatwi przewidywalne zarządzanie stanem.
  • Aktualizacje interfejsu API Compose: interfejs API Compose Viewfinder obsługuje teraz ContentScaleAlignment, co umożliwia precyzyjne kontrolowanie sposobu wyświetlania strumienia z kamery w kontenerze, odzwierciedlając zachowanie standardowego komponentu androidx.compose.foundation.Image.
  • Zarządzanie cyklem życia Surface: ViewfinderSurfaceSession jest teraz utrzymywane przy zmianach konfiguracji i zdarzeniach cyklu życia na interfejsie API w wersji 29 lub nowszej. Ta zmiana ma na celu zmniejszenie liczby pominiętych klatek i zapewnienie płynniejszego działania.
  • Domyślne tryby implementacji: Viewfinder ma teraz domyślnie inteligentny ImplementationMode, który automatycznie wybiera najlepszą implementację bazową. Priorytetem jest wydajny tryb SurfaceView (EXTERNAL), ale w przypadku starszych poziomów interfejsu API lub urządzeń, na których występują problemy ze zgodnością, następuje przejście do bardziej kompatybilnego trybu TextureView (EMBEDDED). To zachowanie można jednak zastąpić, aby uzyskać pełną kontrolę nad programowaniem.

Poprawki błędów

  • Funkcja kompozycyjna Viewfinder działa teraz prawidłowo w Pager w Compose i z movableContentOf(), dzięki czemu powierzchnia jest prawidłowo resetowana i zarządzana w złożonych scenariuszach interfejsu. (I0d9be, I79432)
  • Rozwiązaliśmy problem na Androidzie 10 i 11, w którym SurfaceView-based Viewfinder mógł być rozciągnięty po zastosowaniu przekształceń. (Icc77c)

Wersja 1.5.0-rc01

13 sierpnia 2025 r.

androidx.camera.viewfinder:viewfinder-compose:1.5.0-rc01, androidx.camera.viewfinder:viewfinder-core:1.5.0-rc01androidx.camera.viewfinder:viewfinder-view:1.5.0-rc01 są zwalniane. Wersja 1.5.0-rc01 zawiera te zmiany.

Poprawki błędów

Wersja 1.5.0-beta03

16 lipca 2025 r.

androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta03, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta03androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03 są zwalniane. Wersja 1.5.0-beta03 zawiera te zmiany.

Poprawki błędów

  • Domyślny ImplementationMode dla Viewfinder (zarówno w przypadku interfejsu Compose, jak i interfejsu opartego na widokach) inteligentnie wybiera teraz między EXTERNAL (dla wydajności) a EMBEDDED (dla zgodności ze starszymi interfejsami API i nietypowymi urządzeniami). Ten sposób działania można nadal zastąpić za pomocą wyraźnych ustawień w ViewfinderSurfaceRequest lub atrybutów XML (w interfejsie API opartym na widoku). (Iecd3a)
  • Ulepszone zarządzanie sesjami Surface przez umożliwienie utrzymywania ViewfinderSurfaceSession przy życiu w cyklach życia tworzenia i niszczenia powierzchni podczas korzystania z TextureView lub SurfaceView w API 29 lub nowszym. (I112d9)
  • Viewfinder zapewnia teraz, że obiekty Surface są zwalniane we właściwym czasie, tylko wtedy, gdy nie są już używane przez sesję, a nie zawsze, gdy element kompozycyjny jest usuwany. W przypadku EXTERNAL (SurfaceView) to zachowanie jest obecnie dostępne tylko w interfejsie API w wersji 29 lub nowszej. W przypadku EMBEDDED (TextureView) to zachowanie jest dostępne na wszystkich poziomach interfejsu API. (I9a03f)
  • Viewfinder teraz prawidłowo obsługuje zastępowanie powierzchni w sytuacjach, takich jak przeniesienie wizjera EXTERNAL na poziomie API 28 lub niższym poza ekran lub gdy Viewfinder (z dowolnym ImplementationMode) jest częścią moveableContentOf(). (I79432)
  • Funkcja Composable Viewfinder działa teraz prawidłowo z funkcją Pager w Compose. Ta zmiana zapewnia możliwość prawidłowego zresetowania komponentu kompozycyjnego przez zaimplementowanie wywołania zwrotnego onReset funkcji AndroidView, które obsługuje implementacje EMBEDDEDEXTERNAL. (I0d9be)
  • Rozwiązuje problem na Androidzie 10/11, w którym ikona EXTERNAL Viewfinder mogła być rozciągnięta lub nieprawidłowa z powodu zbyt wczesnego zastosowania operacji przekształcenia (takich jak skalowanie lub przesuwanie). System czeka teraz na utworzenie obiektu Surface, zanim zastosuje te przekształcenia w fazie układu, co zapewnia prawidłowe dane wyjściowe. (Icc77c)

Wersja 1.5.0-beta02

4 czerwca 2025 r.

androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta02, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta02androidx.camera.viewfinder:viewfinder-view:1.5.0-beta02 są zwalniane. Wersja 1.5.0-beta02 zawiera te zmiany.

Wersja 1.5.0-beta01

7 maja 2025 r.

androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta01, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta01androidx.camera.viewfinder:viewfinder-view:1.5.0-beta01 są zwalniane. Wersja 1.5.0-beta01 zawiera te zmiany.

  • To pierwsza oficjalna wersja beta wizjerów opartych na widokach i kompozycjach, które są wystarczająco elastyczne, aby można ich było używać z interfejsem Camera2. Jeśli szukasz widoku lub komponentu kompozycyjnego do użycia z CameraX, zapoznaj się z artykułami PreviewViewCameraXViewfinder.

Nowe funkcje

  • Funkcje ContentScaleAlignment można teraz stosować w wizjerze opartym na komponowaniu, aby skalować i umieszczać wyświetlaną powierzchnię w kontenerze, podobnie jak w przypadku funkcji androidx.compose.foundation.Image. (Ibcea3)

Zmiany w interfejsie API

  • TransformationInfo ma teraz wartości domyślne dla wszystkich argumentów. Umożliwi to tworzenie elementów Viewfinder bez żadnych TransformationInfo, które domyślnie będą miały obrót źródła o 0, bez odzwierciedlania źródła i bez prostokąta przycinania. (I2b1b2)
  • Komponent Composable Viewfinder przyjmuje teraz końcową funkcję lambda, aby otrzymywać sesję Surface, podobnie jak AndroidExternalSurface. Podana funkcja lambda używa ViewfinderInitScope jako odbiorcy, co umożliwia zainstalowanie wywołania zwrotnego w celu otrzymywania nowych sesji Surface. Sesje powierzchni automatycznie zwalniają zasoby zajmowane przez wizjer, gdy wychodzą poza zakres. (Ib2b0d)
  • ViewfinderSurfaceRequest.Builder.populateFromCharacteristics został usunięty i zastąpiony równoważnym zestawem statycznych interfejsów API, których można używać do generowania TransformationInfo, co daje taką samą transformację jak populateFromCharacteristics. Te metody statyczne są dodawane do klasy Camera2TransformationInfo. (Idc6af)
  • ViewfinderSurfaceRequest nie obejmuje już asynchronicznych interfejsów API do pobierania platformy. Jest to teraz niezmienny typ danych. Interfejsy API do pobierania powierzchni zostały przeniesione do wizjera. (I30127)
  • CameraViewfinder została zmieniona na ViewfinderView, aby nazwa była zgodna z nazwą komponentu Viewfinder i wskazywała, że można jej używać nie tylko ze źródłami z kamery. (Id9e6b)
  • Klasy z pakietu viewfinder-view zostały przeniesione do podpakietu androidx.camera.viewfinder.view z pakietu androidx.camera.viewfinder. (I6cb44)
  • Do funkcji Viewfinder opartej na widoku dodano nowe interfejsy API, które umożliwiają ustawianie obrotu źródła, dublowania i prostokąta przycinania. Ta klasa TransformationInfo jest taka sama jak klasa używana przez Viewfinder oparty na Compose. (I907c3)
  • Wizjer oparty na widoku korzysta teraz z nowych interfejsów API ViewfinderSurfaceRequest, które nie obsługują już wewnętrznie odpowiedzi Surface. Zamiast ListenableFuture<Surface> interfejsy API requestSurfaceSession() zwracają teraz ListenableFuture<ViewfinderSurfaceSession>, co z kolei zwraca klasę AutoCloseable, która po zamknięciu działa tak samo jak wywołanie starego interfejsu API ViewfinderSurfaceRequest.markSurfaceSafeToRelease(). Umożliwia to wyraźniejsze rozdzielenie obowiązków między żądaniem a odpowiedzią. (I19041)

Wersja 1.4

Wersja 1.4.0-alpha13

26 lutego 2025 r.

androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha13, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha13androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha13 są zwalniane. Wersja 1.4.0-alpha13 zawiera te zmiany.

Wersja 1.4.0-alpha12

15 stycznia 2025 r.

androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha12, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha12androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha12 są zwalniane. Wersja 1.4.0-alpha12 zawiera te zmiany.

Nowe funkcje

  • Zaktualizowano compileSdk do 35 w przypadku korzystania z interfejsu API związanego z Androidem 15. Aplikacje korzystające z bibliotek CameraX będą też musiały uaktualnić compileSdkustawienie konfiguracji. (Ic80cd)
  • Ta biblioteka korzysta teraz z adnotacji o wartości null JSpecify, które są używane w typie. Deweloperzy Kotlin powinni używać tego argumentu kompilatora, aby wymusić prawidłowe użycie: -Xjspecify-annotations=strict (jest to domyślny argument począwszy od wersji 2.1.0 kompilatora Kotlin). (I7bcd7, b/326456246)

Wersja 1.4.0-alpha11

11 grudnia 2024 r.

androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha11, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha11androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha11 są zwalniane. Wersja 1.4.0-alpha11 zawiera te zmiany.

Zmiany w interfejsie API

  • Klasy viewfinder-core zostały przeniesione do pakietów zgodnych z biblioteką, do której należą. (I431c6)
  • Element CameraViewfinder.ScaleType został przeniesiony do viewfinder-core, aby można go było ponownie użyć w funkcji tworzenia (I87ef1).
  • Wycofane zajęcia CameraViewfinder są usuwane. Używaj nowych interfejsów API, które zapewniają równoważną funkcjonalność. (I6e59a)

Wersja 1.4.0-alpha10

30 października 2024 r.

androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha10, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha10androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha10 są zwalniane. Wersja 1.4.0-alpha10 zawiera te zmiany.

Wersja 1.4.0-alpha09

2 października 2024 r.

androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha09, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha09androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha09 są zwalniane. Wersja 1.4.0-alpha09 zawiera te zmiany.

Wersja 1.4.0-alpha08

4 września 2024 r.

androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha08, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha08androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha08 są zwalniane. Wersja 1.4.0-alpha08 zawiera te zmiany.

Nowe funkcje

W wersji 1.4.0-alpha08 artefakt wizjera CameraX został przeniesiony do własnej grupy bibliotek. Ta zmiana jest konieczna, aby zwiększyć modułowość i łatwość konserwacji biblioteki CameraX.

Jeśli wcześniej korzystałeś(-aś) z androidx.camera:camera-viewfinder, androidx.camera:camera-viewfinder-compose lub androidx.camera:camera-viewfinder-core, musisz przenieść zależności na:

  • 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

Wprowadzenie tej zmiany nie powinno wymagać żadnych zmian w kodzie. Stare współrzędne Maven Viewfindera nie będą już otrzymywać aktualizacji.

Jeśli używasz Compose z CameraX, nowa biblioteka Compose-first jest teraz dostępna w wersji alfa: androidx.camera:camera-compose. Zapewnia to CameraXViewfinder, czyli kompozycję zgodną z Compose, która dostosowuje SurfaceRequest CameraX do Compose, podobnie jak PreviewView działa w przypadku widoków.