Format zdjęć ultra HDR pozwala przechowywać więcej informacji intensywności światła, co przekłada się na bardziej szczegółowe podświetlenia i cienie i głębsze kolory. Od początku Android zapewnia obsługę obrazów Ultra HDR z Androidem 14 (poziom interfejsu API 34). Jeśli aplikacja działa w tych wersjach, jest to ważne jest, aby skonfigurować aplikację tak, aby poprawnie wyświetlała te obrazy. Z drugiej strony Jeśli aplikacja nie wyświetla obrazów ultra HDR, możesz zapisać urządzenie zasobów, nie włączając wyświetlacza Ultra HDR. Na tej stronie dowiesz się, jak sprawdzić czy grafika obsługuje ultra HDR, i jak ją prawidłowo wyświetlać.
Sprawdź, czy jest dostępna mapa zysku
Zdjęcia ultra HDR zawierają mapę wzmocnienia. Mapa wzmocnienia to
używane do określania, jak zwiększyć jasność każdego piksela na obrazie. Aby zweryfikować
jeśli obraz jest w formacie Ultra HDR, przekonwertuj go lub rysuj na
Bitmap
i zadzwoń pod numer Bitmap.hasGainMap()
(dostępne od Androida 14), aby sprawdzić, czy ma mapę wzmocnienia.
Skonfiguruj okno pod kątem wyświetlania technologii ultra HDR
Aby wyświetlać obrazy ultra HDR w pełnym zakresie dynamiki, ustaw kolor okna
do ActivityInfo.COLOR_MODE_HDR
. W tym celu wywołaj metodę
metody setColorMode()
okna. (Te interfejsy API są
dostępna na Androidzie 8; ale nie w trybie ultra HDR, chyba że
masz urządzenie z Androidem 14 lub nowszym).
Podsumowanie
Poniższy kod pokazuje, jak wygląda cały proces. Ten kod zakłada, że obraz
jest wczytywany do bitmapy i sprawdza, czy obraz ma mapę wzmocnienia. Jeśli tak, parametr
kod przełączy tryb kolorów okna na COLOR_MODE_HDR
. Jeśli
obraz nie ma mapy wzmocnienia, kod przełączy okno do domyślnego
tryb kolorów.
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);
Dodatkowe materiały
Więcej informacji o zdjęciach ultra HDR znajdziesz w tych dodatkowych materiałach:
- Film: Tworzenie wysokiej jakości multimediów na Androida funkcje
- Przykładowa aplikacja: Wyświetlanie ultra HDR
- Specyfikacja formatu obrazu ultra HDR
- Film: Historia dewelopera aplikacji na Androida: Wczesne wprowadzenie technologii ultra HDR na Instagramie zmienia UX w zaledwie 3 miesiące