kính ngắm 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.6.1 - - 1.7.0-alpha02
viewfinder-core 1.6.1 - - 1.7.0-alpha02
viewfinder-view 1.6.1 - - 1.7.0-alpha02
Thư viện này được cập nhật lần gần đây nhất vào ngày 1 tháng 7 năm 2026

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


}

Để 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ề Trình theo dõi sự cố để biết thêm thông tin.

Phiên bản 1.7

Phiên bản 1.7.0-alpha02

Ngày 1 tháng 7 năm 2026

Phát hành 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. Phiên bản 1.7.0-alpha02 bao gồm các thay đổi sau.

Thay đổi về API

  • CameraXViewfinder hiện hỗ trợ các cử chỉ tích hợp để chụm để thu phóng và nhấn để lấy nét, đồng thời hỗ trợ đèn flash màn hình và trạng thái luồng. FocusState hiện ở chế độ công khai trong viewfinder-core để cho phép theo dõi kết quả nhấn để lấy nét. (I66a17, b/522549890)
  • Đã thêm thuộc tính TransformationMode vào TransformationInfo để hỗ trợ các ứng dụng sử dụng quy trình OpenGL ở chế độ EMBEDDED. (Id1de1, b/487826941)

Sửa lỗi

  • Xoá yêu cầu đối với compileSdk 37 (If78b4)

Phiên bản 1.7.0-alpha01

Ngày 11 tháng 3 năm 2026

Phát hành 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. Phiên bản 1.7.0-alpha01 bao gồm các thay đổi sau.

Phiên bản 1.6

Phiên bản 1.6.1

Ngày 6 tháng 5 năm 2026

Phát hành androidx.camera.viewfinder:viewfinder-compose:1.6.1, androidx.camera.viewfinder:viewfinder-core:1.6.1androidx.camera.viewfinder:viewfinder-view:1.6.1. Phiên bản 1.6.1 bao gồm các thay đổi sau.

Phiên bản 1.6.0

Ngày 25 tháng 3 năm 2026

Phát hành androidx.camera.viewfinder:viewfinder-compose:1.6.0, androidx.camera.viewfinder:viewfinder-core:1.6.0androidx.camera.viewfinder:viewfinder-view:1.6.0. Phiên bản 1.6.0 bao gồm các thay đổi sau.

Các thay đổi quan trọng kể từ phiên bản 1.5.0:

  • Đã hiển thị ImplementationMode kính ngắm mặc định thông qua API công khai ViewfinderDefaults.implementationMode mới. API này hiện được dùng làm giá trị mặc định cho cả ViewfinderView và thành phần kết hợp Viewfinder. (Ic3f52)

Phiên bản 1.6.0-rc01

Ngày 25 tháng 2 năm 2026

Phát hành 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. Phiên bản 1.6.0-rc01 bao gồm các thay đổi sau.

Phiên bản 1.6.0-beta02

Ngày 11 tháng 2 năm 2026

Phát hành 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. Phiên bản 1.6.0-beta02 bao gồm các thay đổi sau.

Phiên bản 1.6.0-beta01

Ngày 28 tháng 1 năm 2026

Phát hành 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. Phiên bản 1.6.0-beta01 bao gồm các thay đổi sau.

Phiên bản 1.6.0-alpha02

Ngày 17 tháng 12 năm 2025

Phát hành 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. Phiên bản 1.6.0-alpha02 bao gồm các thay đổi sau.

Phiên bản 1.6.0-alpha01

Ngày 22 tháng 10 năm 2025

Phát hành 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. Phiên bản 1.6.0-alpha01 bao gồm các thay đổi sau.

Thay đổi về API

  • Đã hiển thị ImplementationMode kính ngắm mặc định thông qua API công khai ViewfinderDefaults.implementationMode mới. API này hiện được dùng làm giá trị mặc định cho cả ViewfinderView và thành phần kết hợp Viewfinder. (Ic3f52)

Phiên bản 1.5

Phiên bản 1.5.3

Ngày 28 tháng 1 năm 2026

Phát hành androidx.camera.viewfinder:viewfinder-compose:1.5.3, androidx.camera.viewfinder:viewfinder-core:1.5.3androidx.camera.viewfinder:viewfinder-view:1.5.3. Phiên bản 1.5.3 bao gồm các thay đổi sau.

Phiên bản 1.5.2

Ngày 4 tháng 12 năm 2025

Phát hành androidx.camera.viewfinder:viewfinder-compose:1.5.2, androidx.camera.viewfinder:viewfinder-core:1.5.2androidx.camera.viewfinder:viewfinder-view:1.5.2. Phiên bản 1.5.2 bao gồm các thay đổi sau.

Phiên bản 1.5.1

Ngày 8 tháng 10 năm 2025

Phát hành androidx.camera.viewfinder:viewfinder-compose:1.5.1, androidx.camera.viewfinder:viewfinder-core:1.5.1androidx.camera.viewfinder:viewfinder-view:1.5.1. Phiên bản 1.5.1 bao gồm các thay đổi sau.

Phiên bản 1.5.0

Ngày 10 tháng 9 năm 2025

Phát hành androidx.camera.viewfinder:viewfinder-compose:1.5.0, androidx.camera.viewfinder:viewfinder-core:1.5.0androidx.camera.viewfinder:viewfinder-view:1.5.0. Phiên bản 1.5.0 bao gồm các thay đổi sau.

Các thay đổi quan trọng kể từ phiên bản 1.4.0:

Đây là bản phát hành ổn định đầu tiên của thư viện Kính ngắm camera, cung cấp các API mạnh mẽ, nhận biết vòng đời và dễ sử dụng dựa trên Khung hiển thị và Compose. Các thành phần này được thiết kế để đóng vai trò là kính ngắm camera và có thể được tích hợp trực tiếp với Camera2.

Bản phát hành này cũng thiết lập nền tảng cho cấu phần phần mềm androidx.camera:camera-compose mới, giới thiệu CameraXViewfinder, một kính ngắm theo thành ngữ Compose tích hợp liền mạch với SurfaceRequest của CameraX, tương tự như cách PreviewView hoạt động đối với các bố cục dựa trên Khung hiển thị. Sau đây là một số thay đổi quan trọng nhất:

  • Di chuyển cấu phần phần mềm: Để cải thiện tính mô-đun, các cấu phần phần mềm Kính ngắm đã được chuyển sang nhóm thư viện riêng. Nhà phát triển trước đây sử dụng các phần phụ thuộc androidx.camera:camera-viewfinder* nên di chuyển sang androidx.camera.viewfinder:viewfinder-*.
  • Ổn định và tinh chỉnh API: Nền tảng API đã được hoàn thiện cho bản phát hành ổn định này. Điều này bao gồm việc đổi tên CameraViewfinder thành ViewfinderView để phản ánh rõ hơn tính linh hoạt của API này, sắp xếp lại các gói để rõ ràng hơn và biến ViewfinderSurfaceRequest thành loại dữ liệu không thể thay đổi để quản lý trạng thái dễ dự đoán hơn.
  • Nội dung cập nhật API Compose: API Viewfinder Compose hiện hỗ trợ ContentScaleAlignment để kiểm soát chi tiết cách luồng camera được hiển thị trong vùng chứa, phản ánh hành vi của thành phần kết hợp androidx.compose.foundation.Image tiêu chuẩn.
  • Quản lý vòng đời nền tảng: ViewfinderSurfaceSession hiện được duy trì hoạt động trong các thay đổi về cấu hình và sự kiện vòng đời trên API 29 trở lên. Thay đổi này được thiết kế để giảm số khung hình bị bỏ qua và mang lại trải nghiệm mượt mà hơn cho người dùng.
  • Giá trị mặc định của chế độ triển khai: Viewfinder hiện mặc định là ImplementationMode thông minh, tự động chọn cách triển khai cơ bản phù hợp nhất. API này ưu tiên SurfaceView hiệu suất cao (chế độ EXTERNAL) và tự động chuyển về TextureView tương thích hơn (chế độ EMBEDDED) trên các cấp độ API cũ hơn hoặc thiết bị có các vấn đề đã biết về khả năng tương thích. Bạn vẫn có thể ghi đè hành vi này để nhà phát triển có toàn quyền kiểm soát.

Sửa lỗi

  • Thành phần kết hợp Viewfinder hiện hoạt động chính xác trong Pager của Compose và với movableContentOf(), đảm bảo nền tảng được đặt lại và quản lý đúng cách trong các trường hợp phức tạp về giao diện người dùng. (I0d9be, I79432)
  • Khắc phục vấn đề trên Android 10 và 11 khi Viewfinder dựa trên SurfaceView có thể bị kéo giãn khi áp dụng các phép biến đổi. (Icc77c)

Phiên bản 1.5.0-rc01

Ngày 13 tháng 8 năm 2025

Phát hành 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. Phiên bản 1.5.0-rc01 bao gồm các thay đổi sau.

Sửa lỗi

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

  • ImplementationMode mặc định cho Viewfinder (cả dựa trên Compose và Khung hiển thị) hiện 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 cũ/thiết bị có lỗi). 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 việc quản lý phiên nền tảng bằng cách cho phép duy trì ViewfinderSurfaceSession trong các vòng đời tạo/huỷ nền tảng khi sử dụng TextureView hoặc SurfaceView trên API 29 trở lên. (I112d9)
  • Viewfinder hiện đảm bảo các Nền tảng được phát hành vào đúng thời điểm, chỉ khi không còn được phiên sử dụng, thay vì luôn phát hành khi Thành phần kết hợp 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 tất cả các cấp độ API. (I9a03f)
  • Viewfinder hiện xử lý đúng cách việc thay thế nền tảng trong các trường hợp như khi kính 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ó bất kỳ ImplementationMode) nào 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 Thành phần kết hợp có thể được đặt lại thành công bằng cách triển khai lệnh gọi lại onReset của AndroidView, hỗ trợ cả cách triển khai EMBEDDEDEXTERNAL. (I0d9be)
  • Khắc phục vấn đề trên Android 10/11 khi Viewfinder EXTERNAL có thể bị kéo giãn hoặc không chính xác do các thao tác biến đổi (như thu phóng hoặc dịch) được áp dụng quá sớm. Hệ thống hiện chờ Nền tảng đượ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, đủ linh hoạt để sử dụng với Camera2. Nếu bạn đang tìm Khung hiển thị hoặc thành phần kết hợp để sử dụng với CameraX, hãy xem PreviewViewCameraXViewfinder.

Tính năng mới

  • Giờ đây, bạn có thể sử dụng ContentScaleAlignment trong kính ngắm dựa trên Compose để thu phóng và đặt nền tảng được hiển thị trong vùng chứa, 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ả đối số. Điều này sẽ cho phép tạo Kính ngắm mà không cần TransformationInfo. Giá trị này sẽ mặc định là xoay nguồn 0, không phản chiếu nguồn và không có hình chữ nhật cắt. (I2b1b2)
  • Kính ngắm kết hợp hiện lấy lambda ở cuối để nhận phiên Nền tảng, tương tự như AndroidExternalSurface. Lambda được cung cấp sử dụng ViewfinderInitScope làm trình nhận, cho phép cài đặt lệnh gọi lại để nhận các phiên Nền tảng mới. Các phiên nền tảng này tự động phát hành tài nguyên do Kính ngắ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 tập hợp tương đương các API tĩnh 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 nền tảng. Đây hiện là loại dữ liệu không thể thay đổi. Các API để truy xuất Nền tảng hiện được chuyển sang kính 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 bạn có thể sử dụng thành phần này với nhiều nguồn hơn là 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 Kính ngắm dựa trên khung hiển thị cho phép đặt xoay nguồn, phản chiếu và hình chữ nhật cắt. Lớp TransformationInfo này là lớp giống với lớp được Kính ngắm dựa trên Compose sử dụng. (I907c3)
  • Kính ngắm dựa trên khung hiển thị hiện sử dụng các API ViewfinderSurfaceRequest mới không còn xử lý nội bộ phản hồi Nền tảng. Thay vì trả về ListenableFuture<Surface>, các API requestSurfaceSession() hiện trả về ListenableFuture<ViewfinderSurfaceSession> trả về lớp AutoCloseable. Khi đóng, lớp này hoạt động giống như khi gọi API cũ của ViewfinderSurfaceRequest.markSurfaceSafeToRelease(). Điều này giúp tách biệt rõ ràng trách nhiệm giữa yêu cầu nền tảng và phản hồi 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ú thích về tính chất rỗng của 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 để thực thi việc sử dụng chính xác: -Xjspecify-annotations=strict (đây là giá trị 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 chuyển sang viewfinder-core để có thể dùng lại với Compose (I87ef1)
  • Các lớp CameraViewfinder không dùng nữa đã bị xoá. Vui lòng sử dụng các API mới cung cấp 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

Với bản cập nhật lên 1.4.0-alpha08, cấu phần phần mềm Kính ngắm CameraX đã được chuyển sang nhóm thư viện riêng. Thay đổi này là cần thiết để cải thiện tính mô-đun và khả năng bảo 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, bạn sẽ cần chuyển các phần phụ thuộc sang các 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. Tọa độ Maven của Kính ngắm cũ sẽ không còn nhận được bản cập nhật nữa.

Ngoài ra, nếu bạn đang sử dụng Compose với CameraX, thì thư viện ưu tiên Compose mới hiện có ở phiên bản alpha: androidx.camera:camera-compose. Thư viện này cung cấp thành phần kết hợp CameraXViewfinder, là Kính ngắm theo thành ngữ Compose, điều chỉnh SurfaceRequest của CameraX thành Compose, tương tự như cách PreviewView hoạt động đối với các khung hiển thị.