Định dạng hình ảnh Ultra HDR cho phép hình ảnh lưu trữ thêm thông tin về cường độ ánh sáng, giúp các vùng sáng và bóng đổ chi tiết hơn, và có màu đậm hơn. Android hỗ trợ hình ảnh Ultra HDR bắt đầu trên Android 14 (API cấp 34). Nếu ứng dụng của bạn đang chạy trên những phiên bản đó, bạn cần phải định cấu hình ứng dụng để hiển thị những hình ảnh này đúng cách. Mặt khác Nếu ứng dụng của bạn hiện không hiển thị hình ảnh Ultra HDR, bạn có thể tiết kiệm thiết bị bằng cách không bật chế độ màn hình Ultra HDR. Trang này giải thích cách kiểm tra đồ hoạ có hỗ trợ Ultra HDR hay không và làm thế nào để hiển thị chúng đúng cách.
Kiểm tra sự hiện diện của bản đồ khu vực trợ giúp
Hình ảnh Ultra HDR chứa bản đồ giảm giá. Bản đồ khuếch đại là
dùng để xác định độ sáng tăng lên của từng pixel trong hình ảnh. Để xác minh
nếu một hình ảnh ở định dạng Ultra HDR, hãy chuyển đổi hình ảnh đó hoặc đối tượng có thể vẽ thành
Bitmap
và gọi Bitmap.hasGainMap()
(có sẵn kể từ Android 14) để kiểm tra xem có bản đồ khuếch đại hay không.
Định cấu hình cửa sổ để hiển thị Ultra HDR
Để hiển thị hình ảnh Ultra HDR với toàn bộ dải động, hãy đặt màu cho cửa sổ
sang ActivityInfo.COLOR_MODE_HDR
. Hãy thực hiện việc này bằng cách gọi hàm
phương thức setColorMode()
của cửa sổ. (Những API này
có trên Android 8; tuy nhiên, hình ảnh sẽ không xuất hiện ở chế độ Ultra HDR trừ phi
thiết bị đang chạy Android 14 trở lên.)
Kết hợp kiến thức đã học
Đoạn mã sau đây cho thấy toàn bộ quy trình trông như thế nào. Mã này giả định một hình ảnh
được tải vào Bitmap và kiểm tra xem hình ảnh có bản đồ khuếch đại hay không. Nếu có, thì
mã chuyển chế độ màu của cửa sổ thành COLOR_MODE_HDR
. Nếu
hình ảnh không có bản đồ khuếch đại, mã sẽ chuyển cửa sổ sang chế độ mặc định
chế độ màu.
Kotlin
val bitmap = /* Get Bitmap from Image Resource */ binding.imageContainer.setImageBitmap(bitmap) // Set color mode of the activity to the correct color mode. requireActivity().window.colorMode = if (bitmap.hasGainmap()) ActivityInfo.COLOR_MODE_HDR else ActivityInfo.COLOR_MODE_DEFAULT
Java
final Bitmap bitmap = /* Get Bitmap from Image Resource */ binding.imageContainer.setImageBitmap(bitmap); // Set color mode of the activity to the correct color mode. int colorMode = ActivityInfo.COLOR_MODE_DEFAULT; if (bitmap.hasGainmap()) colorMode = ActivityInfo.COLOR_MODE_HDR; requireActivity().getWindow().setColorMode(colorMode);
Tài nguyên khác
Để tìm hiểu thêm về hình ảnh Ultra HDR, hãy xem thêm các tài nguyên sau:
- Video: Tạo nội dung nghe nhìn chất lượng cao trên Android trải nghiệm
- Ứng dụng mẫu: Hiển thị Ultra HDR
- Thông số kỹ thuật về định dạng hình ảnh HDR siêu cao
- Video: Câu chuyện của nhà phát triển Android: Việc Instagram sớm áp dụng tính năng Ultra HDR giúp biến đổi trải nghiệm người dùng chỉ sau 3 tháng