jendela bidik kamera
Tabel ini mencantumkan semua artefak dalam grup androidx.camera-viewfinder
.
Artefak | Rilis Stabil | Kandidat Rilis | Rilis Beta | Rilis Alfa |
---|---|---|---|---|
viewfinder-compose | 1.5.0 | - | - | 1.4.0-alpha13 |
viewfinder-core | 1.5.0 | - | - | 1.4.0-alpha13 |
viewfinder-view | 1.5.0 | - | - | 1.4.0-alpha13 |
Mendeklarasikan dependensi
Untuk menambahkan dependensi pada camera-viewfinder, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.
Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle
bagi aplikasi atau modul Anda:
Groovy
dependencies { // Use to implement camera viewfinders implementation "androidx.camera.viewfinder:viewfinder-view:1.5.0" implementation "androidx.camera.viewfinder:viewfinder-compose:1.5.0" implementation "androidx.camera.viewfinder:viewfinder-core:1.5.0" }
Kotlin
dependencies { // Use to implement camera viewfinders implementation("androidx.camera.viewfinder:viewfinder-view:1.5.0") implementation("androidx.camera.viewfinder:viewfinder-core:1.5.0") implementation("androidx.camera.viewfinder:viewfinder-compose:1.5.0") }
Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.
Masukan
Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.
Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.
Versi 1.5
Versi 1.5.0
10 September 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.0
, androidx.camera.viewfinder:viewfinder-core:1.5.0
, dan androidx.camera.viewfinder:viewfinder-view:1.5.0
dirilis. Versi 1.5.0 berisi commit ini.
Perubahan penting sejak versi 1.4.0:
Ini adalah rilis stabil pertama library Camera Viewfinder, yang menyediakan API berbasis View dan Compose yang tangguh, mendukung siklus proses, dan mudah digunakan. Komponen ini dirancang untuk berfungsi sebagai jendela bidik kamera dan dapat diintegrasikan langsung dengan Camera2.
Rilis ini juga menetapkan dasar untuk artefak androidx.camera:camera-compose
baru, yang memperkenalkan CameraXViewfinder
, jendela bidik idiomatis Compose yang terintegrasi dengan lancar dengan SurfaceRequest
CameraX, mirip dengan cara kerja PreviewView
untuk tata letak berbasis View. Beberapa perubahan paling penting meliputi:
- Pemindahan Artefak: Untuk meningkatkan modularitas, artefak Viewfinder telah dipindahkan ke grup library-nya sendiri. Developer yang sebelumnya menggunakan dependensi
androidx.camera:camera-viewfinder*
harus bermigrasi keandroidx.camera.viewfinder:viewfinder-*
. - Stabilisasi dan Penyempurnaan API: Platform API telah dioptimalkan untuk rilis stabil ini. Hal ini mencakup mengganti nama
CameraViewfinder
menjadiViewfinderView
agar lebih mencerminkan fleksibilitasnya, mengatur ulang paket agar lebih jelas, dan menjadikanViewfinderSurfaceRequest
sebagai jenis data yang tidak dapat diubah untuk pengelolaan status yang lebih dapat diprediksi. - Update Compose API: Compose
Viewfinder
API kini mendukungContentScale
danAlignment
untuk kontrol terperinci tentang cara aliran kamera ditampilkan dalam penampungnya, yang mencerminkan perilaku composableandroidx.compose.foundation.Image
standar. - Pengelolaan Siklus Proses Platform:
ViewfinderSurfaceSession
kini tetap aktif di seluruh perubahan konfigurasi dan peristiwa siklus proses di API 29+. Perubahan ini dirancang untuk mengurangi frame yang terputus dan memberikan pengalaman pengguna yang lebih lancar. - Default Mode Penerapan:
Viewfinder
kini secara default menggunakanImplementationMode
cerdas yang otomatis memilih penerapan dasar terbaik. Library ini memprioritaskanSurfaceView
berperforma tinggi (modeEXTERNAL
) dan melakukan penggantian yang lancar keTextureView
yang lebih kompatibel (modeEMBEDDED
) pada level API yang lebih lama atau perangkat dengan masalah kompatibilitas yang diketahui. Perilaku ini masih dapat diganti untuk kontrol developer penuh.
Perbaikan Bug
- Composable
Viewfinder
kini berfungsi dengan benar dalamPager
Compose dan denganmovableContentOf()
, sehingga memastikan permukaan direset dan dikelola dengan benar dalam skenario UI yang kompleks. (I0d9be, I79432) - Memperbaiki masalah di Android 10 dan 11 saat
Viewfinder
berbasisSurfaceView
dapat tampak diperluas saat transformasi diterapkan. (Icc77c)
Versi 1.5.0-rc01
13 Agustus 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.0-rc01
, androidx.camera.viewfinder:viewfinder-core:1.5.0-rc01
, dan androidx.camera.viewfinder:viewfinder-view:1.5.0-rc01
dirilis. Versi 1.5.0-rc01 berisi commit ini.
Perbaikan Bug
- Memindahkan
minSdk
default dari API 21 ke API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
Versi 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
, dan androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03
dirilis. Versi 1.5.0-beta03 berisi commit ini.
Perbaikan Bug
ImplementationMode
default untukViewfinder
(berbasis Compose dan View) kini secara cerdas memilih antaraEXTERNAL
(untuk performa) danEMBEDDED
(untuk kompatibilitas pada API lama/perangkat yang tidak biasa). Perilaku ini masih dapat diganti oleh setelan eksplisit diViewfinderSurfaceRequest
atau atribut XML (di API berbasis View). (Iecd3a)- Meningkatkan pengelolaan sesi Surface dengan memungkinkan
ViewfinderSurfaceSession
tetap aktif di seluruh siklus proses pembuatan/penghancuran permukaan saat menggunakan TextureView atau SurfaceView di API 29+. (I112d9) Viewfinder
kini memastikan Surface dilepaskan pada waktu yang tepat, hanya saat tidak lagi digunakan oleh sesi, bukan selalu dilepaskan saat Composable dibuang. UntukEXTERNAL
(SurfaceView
), perilaku ini saat ini hanya tersedia di API 29+. UntukEMBEDDED
(TextureView
), perilaku ini ada di semua level API. (I9a03f)Viewfinder
kini menangani penggantian permukaan dengan benar dalam skenario seperti saat jendela bidikEXTERNAL
di API level 28 atau yang lebih rendah berpindah dari layar atau jikaViewfinder
(denganImplementationMode
apa pun) adalah bagian darimoveableContentOf()
. (I79432)- Composable
Viewfinder
kini berfungsi dengan benar denganPager
Compose. Perubahan ini memastikan Composable dapat direset dengan berhasil dengan menerapkan callbackonReset
dariAndroidView
, yang mendukung penerapanEMBEDDED
danEXTERNAL
. (I0d9be) - Memperbaiki masalah di Android 10/11 saat
EXTERNAL
Viewfinder
dapat tampak meregang atau salah karena operasi transformasi (seperti penskalaan atau terjemahan) diterapkan terlalu awal. Sistem kini menunggu Surface dibuat sebelum menerapkan transformasi ini dalam fase tata letak, sehingga memastikan output yang benar. (Icc77c)
Versi 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
, dan androidx.camera.viewfinder:viewfinder-view:1.5.0-beta02
dirilis. Versi 1.5.0-beta02 berisi commit ini.
Versi 1.5.0-beta01
7 Mei 2025
androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta01
, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta01
, dan androidx.camera.viewfinder:viewfinder-view:1.5.0-beta01
dirilis. Versi 1.5.0-beta01 berisi commit ini.
- Ini adalah rilis beta resmi pertama dari jendela bidik berbasis tampilan dan berbasis Compose yang cukup fleksibel untuk digunakan dengan Camera2. Jika Anda mencari View atau composable untuk digunakan dengan CameraX, lihat
PreviewView
danCameraXViewfinder
.
Fitur Baru
ContentScale
danAlignment
kini dapat digunakan di jendela bidik berbasis compose untuk menskalakan dan menempatkan permukaan yang ditampilkan dalam penampungnya, mirip dengan cara kerjaandroidx.compose.foundation.Image
. (Ibcea3)
Perubahan API
TransformationInfo
kini memiliki nilai default untuk semua argumen. Hal ini akan memungkinkan Viewfinder dibuat tanpaTransformationInfo
, yang secara default akan menggunakan rotasi sumber 0, tanpa pencerminan sumber, dan tanpa persegi panjang pangkas. (I2b1b2)- Composable Viewfinder kini menggunakan lambda akhir untuk menerima sesi Surface, mirip dengan
AndroidExternalSurface
. Lambda yang disediakan menggunakanViewfinderInitScope
sebagai penerima, yang memungkinkan penginstalan callback untuk menerima sesi Surface baru. Sesi permukaan ini secara otomatis melepaskan resource yang dipegang oleh Viewfinder saat keluar dari cakupan. (Ib2b0d) ViewfinderSurfaceRequest.Builder.populateFromCharacteristics
kini telah dihapus dan diganti dengan serangkaian API statis yang setara yang dapat digunakan untuk menghasilkanTransformationInfo
yang akan menghasilkan transformasi yang sama denganpopulateFromCharacteristics
. Metode statis ini ditambahkan ke classCamera2TransformationInfo
. (Idc6af)ViewfinderSurfaceRequest
tidak lagi menyertakan API asinkron untuk mengambil permukaan. Sekarang menjadi jenis data yang tidak dapat diubah. API untuk mengambil Surface kini dipindahkan ke jendela bidik. (I30127)CameraViewfinder
telah diganti namanya menjadiViewfinderView
agar penamaannya selaras dengan penamaan composable Jendela Bidik dan untuk menunjukkan bahwa composable ini dapat digunakan dengan lebih dari sekadar sumber kamera. (Id9e6b)- Class dari
viewfinder-view
telah dipindahkan ke subpaketandroidx.camera.viewfinder.view
dari paketandroidx.camera.viewfinder
. (I6cb44) - API baru ditambahkan ke Viewfinder berbasis tampilan yang memungkinkan setelan rotasi sumber, pencerminan, dan persegi panjang pangkas. Class
TransformationInfo
ini sama dengan class yang digunakan oleh Viewfinder berbasis compose. (I907c3) - Viewfinder berbasis tampilan kini menggunakan API
ViewfinderSurfaceRequest
baru yang tidak lagi menangani respons Surface secara internal. Daripada menampilkanListenableFuture<Surface>
, APIrequestSurfaceSession()
kini menampilkanListenableFuture<ViewfinderSurfaceSession>
yang menampilkan classAutoCloseable
yang saat ditutup berperilaku sama seperti memanggil API lamaViewfinderSurfaceRequest.markSurfaceSafeToRelease()
. Hal ini memberikan pemisahan tanggung jawab yang lebih jelas antara permintaan platform dan respons platform. (I19041)
Versi 1.4
Versi 1.4.0-alpha13
26 Februari 2025
androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha13
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha13
, dan androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha13
dirilis. Versi 1.4.0-alpha13 berisi commit ini.
Versi 1.4.0-alpha12
15 Januari 2025
androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha12
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha12
, dan androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha12
dirilis. Versi 1.4.0-alpha12 berisi commit ini.
Fitur Baru
- Mengupgrade
compileSdk
sebagai 35 untuk menggunakan API terkait Android 15. Aplikasi yang menggunakan library CameraX juga perlu mengupgrade setelan konfigurasicompileSdk
. (Ic80cd) - Library ini kini menggunakan anotasi nullabilitas JSpecify, yang merupakan penggunaan jenis. Developer Kotlin harus menggunakan argumen compiler berikut untuk menerapkan penggunaan yang benar:
-Xjspecify-annotations=strict
(ini adalah nilai default yang dimulai dengan compiler Kotlin versi 2.1.0). (I7bcd7, b/326456246)
Versi 1.4.0-alpha11
11 Desember 2024
androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha11
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha11
, dan androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha11
dirilis. Versi 1.4.0-alpha11 berisi commit ini.
Perubahan API
- Class
viewfinder-core
telah dipindahkan ke dalam paket yang konsisten dengan library tempat class tersebut berada. (I431c6) CameraViewfinder.ScaleType
telah dipindahkan keviewfinder-core
sehingga dapat digunakan kembali dengan Compose (I87ef1)- Class
CameraViewfinder
yang tidak digunakan lagi akan dihapus. Gunakan API baru yang menyediakan fungsi yang setara. (I6e59a)
Versi 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
, dan androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha10
dirilis. Versi 1.4.0-alpha10 berisi commit ini.
Versi 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
, dan androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha09
dirilis. Versi 1.4.0-alpha09 berisi commit ini.
Versi 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
, dan androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha08
dirilis. Versi 1.4.0-alpha08 berisi commit ini.
Fitur Baru
Dengan update ke 1.4.0-alpha08, artefak Viewfinder CameraX telah dipindahkan ke grup library-nya sendiri. Perubahan ini diperlukan untuk meningkatkan modularitas dan kemudahan pemeliharaan library CameraX.
Jika sebelumnya Anda bergantung pada androidx.camera:camera-viewfinder
, androidx.camera:camera-viewfinder-compose
, atau androidx.camera:camera-viewfinder-core
, Anda harus mentransisikan dependensi ke berikut ini:
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
Anda tidak perlu mengubah kode apa pun untuk melakukan transisi ini. Koordinat Maven Viewfinder lama tidak akan lagi menerima update.
Selain itu, jika Anda menggunakan Compose dengan CameraX, library baru yang mengutamakan Compose kini tersedia dalam versi alfa: androidx.camera:camera-compose
. Hal ini menyediakan composable CameraXViewfinder
, yang merupakan Jendela Bidik idiomatis Compose yang mengadaptasi SurfaceRequest
CameraX ke Compose, mirip dengan cara kerja PreviewView
untuk tampilan.