kính ngắm của camera

  
Thành phần kết hợp độc lập và Kính ngắm dựa trên khung hiển thị cho 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
Lần gần nhất cập nhật thư viện này: ngày 16 tháng 7 năm 2025

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.

Báo lỗi mới

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-beta03androidx.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 cho Viewfinder (cả Compose và dựa trên Khung hiển thị) sẽ chọn một cách thông minh giữa EXTERNAL (để 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 trong ViewfinderSurfaceRequest 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ới EXTERNAL (SurfaceView), hành vi này hiện chỉ có trên API 29 trở lên. Đối với EMBEDDED (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ắm EXTERNAL trên API cấp 28 trở xuống di chuyển ra khỏi màn hình hoặc nếu Viewfinder (có ImplementationMode bất kỳ) là một phần của moveableContentOf(). (I79432)
  • Thành phần kết hợp Viewfinder hiện hoạt động chính xác với Pager 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ại onReset của AndroidView, hỗ trợ cả việc triển khai EMBEDDEDEXTERNAL. (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-beta02androidx.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-beta01androidx.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 PreviewViewCameraXViewfinder.

Tính năng mới

  • Giờ đây, bạn có thể dùng ContentScaleAlignment 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ách androidx.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ần TransformationInfo, 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ụng ViewfinderInitScope 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ạo TransformationInfo. 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ớp Camera2TransformationInfo. (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ành ViewfinderView để 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 con androidx.camera.viewfinder.view từ gói androidx.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 API requestSurfaceSession() hiện trả về ListenableFuture<ViewfinderSurfaceSession>. API này sẽ trả về một lớp AutoCloseable. Khi đóng, lớp này sẽ hoạt động giống như khi gọi API cũ của ViewfinderSurfaceRequest.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-alpha13androidx.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-alpha12androidx.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ình compileSdk. (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-alpha11androidx.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 sang viewfinder-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-alpha10androidx.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-alpha09androidx.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-alpha08androidx.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ị.