פורמט התמונה Ultra HDR מאפשר לתמונות לאחסן יותר מידע על עוצמת האור, וכתוצאה מכך, להציג הדגשות וצללים מפורטים יותר וצבעים עזים יותר. Android תומך בתמונות Ultra HDR החל מ-Android 14 (רמת API 34). אם האפליקציה שלכם פועלת בגרסאות האלה, חשוב להגדיר אותה כך שהתמונות יוצגו בצורה תקינה. מצד שני, אם האפליקציה לא מציגה תמונות ב-Ultra HDR, אפשר לחסוך במשאבי המכשיר על ידי השבתת התצוגה ב-Ultra HDR. בדף הזה מוסבר איך לבדוק אם יש תמיכה ב-Ultra HDR בגרפיקה, ואיך להציג אותה בצורה נכונה.
בדיקה אם קיימת מפת עוצמה
תמונות Ultra HDR מכילות מפת הגברה. מפת ההגברה משמשת לקביעת הבהירות המוגברת של כל פיקסל בתמונה. כדי לבדוק אם תמונה היא בפורמט Ultra HDR, ממירים את התמונה או את רכיב ה-drawable ל-Bitmap
ומפעילים את Bitmap.hasGainMap()
(זמין מגרסה Android 14) כדי לבדוק אם יש לה מפת גוונים.
הגדרת החלון להצגת Ultra HDR
כדי להציג תמונות Ultra HDR עם הטווח הדינמי המלא, צריך להגדיר את מצב הצבע של החלון ל-ActivityInfo.COLOR_MODE_HDR
. כדי לעשות את זה, קוראים ל-method setColorMode()
של window. (ממשקי ה-API האלה זמינים מ-Android 8, אבל התמונות לא מוצגות ב-Ultra HDR אלא אם במכשיר מותקנת Android 14 ומעלה).
סיכום של כל המידע
הקוד הבא מראה איך התהליך כולו נראה. הקוד הזה מניח שתמונה נטענת ל-Bitmap, ובודק אם לתמונה יש מפת עוצמה. אם כן, הקוד משנה את מצב הצבע של החלון ל-COLOR_MODE_HDR
. אם לתמונה אין מפת עוצמה, הקוד מעביר את החלון למצב הצבע שמוגדר כברירת מחדל.
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);
מקורות מידע נוספים
מידע נוסף על תמונות באיכות Ultra HDR זמין במקורות המידע הבאים:
- סרטון: יצירת חוויות מדיה באיכות גבוהה ב-Android
- אפליקציה לדוגמה: הצגת Ultra HDR
- מפרט פורמט התמונות Ultra HDR
- סרטון: סיפור מפתח Android: אימוץ מוקדם של Ultra HDR ב-Instagram משפר את חוויית המשתמש תוך 3 חודשים בלבד