kính ngắm của camera
Bảng này liệt kê tất cả cấu phần phần mềm trong nhóm androidx.camera-viewfinder
.
Cấu phần phần mềm | Bản phát hành ổn định | Bản phát hành dùng thử | Bản phát hành beta | Bản phát hành 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 |
Khai báo phần phụ thuộc
Để thêm một phần phụ thuộc trên camera-viewfinder, bạn phải thêm kho lưu trữ Google Maven vào dự án của mình. Đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.
Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle
cho ứng dụng hoặc mô-đun:
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") }
Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc vào bản dựng.
Ý kiến phản hồi
Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.
Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.
Phiên bản 1.5
Phiên bản 1.5.0-beta03
Ngày 16 tháng 7 năm 2025
Phát hành androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta03
, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta03
và androidx.camera.viewfinder:viewfinder-view:1.5.0-beta03
. Phiên bản 1.5.0-beta03 bao gồm các thay đổi sau.
Sửa lỗi
- Giờ đây,
ImplementationMode
mặc định choViewfinder
(cả Compose và dựa trên Khung hiển thị) sẽ chọn một cách thông minh giữaEXTERNAL
(để có hiệu suất) vàEMBEDDED
(để tương thích trên các API/thiết bị cũ có hành vi bất thường). Bạn vẫn có thể ghi đè hành vi này bằng các chế độ cài đặt rõ ràng trongViewfinderSurfaceRequest
hoặc thuộc tính XML (trên API dựa trên Khung hiển thị). (Iecd3a) - Cải thiện hoạt động quản lý phiên Surface bằng cách cho phép
ViewfinderSurfaceSession
duy trì hoạt động trong suốt vòng đời tạo/huỷ khu vực khi sử dụng TextureView hoặc SurfaceView trên API 29 trở lên. (I112d9) - Giờ đây,
Viewfinder
đảm bảo các Surface được phát hành vào đúng thời điểm, chỉ khi phiên không còn sử dụng nữa, thay vì luôn phát hành khi Composable bị loại bỏ. Đối vớiEXTERNAL
(SurfaceView
), hành vi này hiện chỉ có trên API 29 trở lên. Đối vớiEMBEDDED
(TextureView
), hành vi này có trên mọi cấp độ API. (I9a03f) Viewfinder
hiện xử lý đúng cách việc thay thế bề mặt trong các trường hợp như khi khung ngắmEXTERNAL
trên API cấp 28 trở xuống di chuyển ra khỏi màn hình hoặc nếuViewfinder
(cóImplementationMode
bất kỳ) là một phần củamoveableContentOf()
. (I79432)- Thành phần kết hợp
Viewfinder
hiện hoạt động chính xác vớiPager
của Compose. Thay đổi này đảm bảo rằng bạn có thể đặt lại Thành phần kết hợp thành công bằng cách triển khai lệnh gọi lạionReset
củaAndroidView
, hỗ trợ cả việc triển khaiEMBEDDED
vàEXTERNAL
. (I0d9be) - Khắc phục một vấn đề trên Android 10/11, trong đó
EXTERNAL
Viewfinder
có thể xuất hiện bị kéo giãn hoặc không chính xác do các thao tác biến đổi (chẳng hạn như thu phóng hoặc dịch) được áp dụng quá sớm. Giờ đây, hệ thống sẽ đợi Surface được tạo trước khi áp dụng các phép biến đổi này trong giai đoạn bố cục, đảm bảo đầu ra chính xác. (Icc77c)
Phiên bản 1.5.0-beta02
Ngày 4 tháng 6 năm 2025
Phát hành androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta02
, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta02
và androidx.camera.viewfinder:viewfinder-view:1.5.0-beta02
. Phiên bản 1.5.0-beta02 bao gồm các thay đổi sau.
Phiên bản 1.5.0-beta01
Ngày 7 tháng 5 năm 2025
Phát hành androidx.camera.viewfinder:viewfinder-compose:1.5.0-beta01
, androidx.camera.viewfinder:viewfinder-core:1.5.0-beta01
và androidx.camera.viewfinder:viewfinder-view:1.5.0-beta01
. Phiên bản 1.5.0-beta01 bao gồm các thay đổi sau.
- Đây là bản phát hành beta chính thức đầu tiên của kính ngắm dựa trên khung hiển thị và dựa trên Compose. Các kính ngắm này đủ linh hoạt để dùng với Camera2. Nếu bạn đang tìm kiếm một View hoặc thành phần kết hợp để dùng với CameraX, hãy xem
PreviewView
vàCameraXViewfinder
.
Tính năng mới
- Giờ đây, bạn có thể dùng
ContentScale
vàAlignment
trong khung ngắm dựa trên Compose để điều chỉnh tỷ lệ và đặt bề mặt hiển thị trong vùng chứa của nó, tương tự như cáchandroidx.compose.foundation.Image
hoạt động. (Ibcea3)
Thay đổi về API
TransformationInfo
hiện có các giá trị mặc định cho tất cả các đối số. Điều này sẽ cho phép tạo Viewfinder mà không cầnTransformationInfo
, theo mặc định, Viewfinder sẽ có góc xoay nguồn là 0, không có tính năng phản chiếu nguồn và không có hình chữ nhật cắt. (I2b1b2)- Giờ đây, Khung ngắm có thể kết hợp sẽ lấy một lambda theo sau để nhận một phiên Surface, tương tự như
AndroidExternalSurface
. Lambda được cung cấp sử dụngViewfinderInitScope
làm đối tượng nhận, cho phép cài đặt một lệnh gọi lại để nhận các phiên Khu vực mới. Các phiên này sẽ tự động giải phóng tài nguyên do Viewfinder nắm giữ khi chúng nằm ngoài phạm vi. (Ib2b0d) ViewfinderSurfaceRequest.Builder.populateFromCharacteristics
hiện đã bị xoá và được thay thế bằng một nhóm API tĩnh tương đương có thể dùng để tạoTransformationInfo
. API này sẽ tạo ra cùng một phép biến đổi nhưpopulateFromCharacteristics
. Các phương thức tĩnh này được thêm vào lớpCamera2TransformationInfo
. (Idc6af)ViewfinderSurfaceRequest
không còn bao gồm các API không đồng bộ để truy xuất bề mặt nữa. Giờ đây, đây là một kiểu dữ liệu bất biến. Giờ đây, các API để truy xuất Surface đã được chuyển sang khung ngắm. (I30127)CameraViewfinder
đã được đổi tên thànhViewfinderView
để tên này phù hợp với tên của thành phần kết hợp Kính ngắm và cho biết rằng thành phần này có thể dùng với nhiều nguồn hơn chứ không chỉ nguồn camera. (Id9e6b)- Các lớp từ
viewfinder-view
đã được chuyển sang gói conandroidx.camera.viewfinder.view
từ góiandroidx.camera.viewfinder
. (I6cb44) - Các API mới được thêm vào Khung ngắm dựa trên khung hiển thị cho phép đặt hướng xoay, chế độ phản chiếu và hình chữ nhật cắt của nguồn. Lớp
TransformationInfo
này giống với lớp mà Viewfinder dựa trên Compose sử dụng. (I907c3) - Giờ đây, Viewfinder dựa trên khung hiển thị sẽ sử dụng các API
ViewfinderSurfaceRequest
mới, không còn xử lý phản hồi Surface nội bộ nữa. Thay vì trả vềListenableFuture<Surface>
, các APIrequestSurfaceSession()
hiện trả vềListenableFuture<ViewfinderSurfaceSession>
. API này sẽ trả về một lớpAutoCloseable
. Khi đóng, lớp này sẽ hoạt động giống như khi gọi API cũ củaViewfinderSurfaceRequest.markSurfaceSafeToRelease()
. Điều này giúp phân tách rõ ràng hơn trách nhiệm giữa yêu cầu và phản hồi của nền tảng. (I19041)
Phiên bản 1.4
Phiên bản 1.4.0-alpha13
Ngày 26 tháng 2 năm 2025
Phát hành androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha13
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha13
và androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha13
. Phiên bản 1.4.0-alpha13 bao gồm các thay đổi sau.
Phiên bản 1.4.0-alpha12
Ngày 15 tháng 1 năm 2025
Phát hành androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha12
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha12
và androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha12
. Phiên bản 1.4.0-alpha12 bao gồm các thay đổi sau.
Tính năng mới
- Nâng cấp
compileSdk
thành 35 để sử dụng API liên quan đến Android 15. Các ứng dụng sử dụng thư viện CameraX cũng cần nâng cấp chế độ cài đặt cấu hìnhcompileSdk
. (Ic80cd) - Thư viện này hiện sử dụng chú giải về giá trị rỗng JSpecify, là loại sử dụng. Nhà phát triển Kotlin nên sử dụng đối số trình biên dịch sau đây để thực thi việc sử dụng chính xác:
-Xjspecify-annotations=strict
(đây là đối số mặc định bắt đầu từ phiên bản 2.1.0 của trình biên dịch Kotlin). (I7bcd7, b/326456246)
Phiên bản 1.4.0-alpha11
Ngày 11 tháng 12 năm 2024
Phát hành androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha11
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha11
và androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha11
. Phiên bản 1.4.0-alpha11 bao gồm các thay đổi sau.
Thay đổi về API
- Các lớp
viewfinder-core
đã được chuyển vào các gói nhất quán với thư viện mà chúng thuộc về. (I431c6) CameraViewfinder.ScaleType
đã được di chuyển sangviewfinder-core
để có thể dùng lại với Compose (I87ef1)- Xoá các lớp
CameraViewfinder
không dùng nữa. Vui lòng sử dụng các API mới có chức năng tương đương. (I6e59a)
Phiên bản 1.4.0-alpha10
Ngày 30 tháng 10 năm 2024
Phát hành androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha10
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha10
và androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha10
. Phiên bản 1.4.0-alpha10 bao gồm các thay đổi sau.
Phiên bản 1.4.0-alpha09
Ngày 2 tháng 10 năm 2024
Phát hành androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha09
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha09
và androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha09
. Phiên bản 1.4.0-alpha09 bao gồm các thay đổi sau.
Phiên bản 1.4.0-alpha08
Ngày 4 tháng 9 năm 2024
Phát hành androidx.camera.viewfinder:viewfinder-compose:1.4.0-alpha08
, androidx.camera.viewfinder:viewfinder-core:1.4.0-alpha08
và androidx.camera.viewfinder:viewfinder-view:1.4.0-alpha08
. Phiên bản 1.4.0-alpha08 bao gồm các thay đổi sau.
Tính năng mới
Khi cập nhật lên phiên bản 1.4.0-alpha08, cấu phần phần mềm CameraX Viewfinder đã được chuyển sang nhóm thư viện riêng. Đây là thay đổi cần thiết để cải thiện tính mô-đun và khả năng duy trì của thư viện CameraX.
Nếu trước đây bạn phụ thuộc vào androidx.camera:camera-viewfinder
, androidx.camera:camera-viewfinder-compose
hoặc androidx.camera:camera-viewfinder-core
, thì bạn sẽ cần chuyển các phần phụ thuộc của mình sang những phần sau:
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
Bạn không cần thay đổi mã để thực hiện quá trình chuyển đổi này. Toạ độ maven cũ của Viewfinder sẽ không nhận được bản cập nhật nữa.
Ngoài ra, nếu bạn đang dùng Compose với CameraX, thì một thư viện mới ưu tiên Compose hiện đã có ở giai đoạn alpha: androidx.camera:camera-compose
. Thao tác này cung cấp thành phần kết hợp CameraXViewfinder
, là một Kính ngắm theo kiểu Compose, có khả năng điều chỉnh SurfaceRequest
của CameraX cho Compose, tương tự như cách PreviewView
hoạt động đối với các khung hiển thị.