הצגת תמונות Ultra HDR

פורמט התמונה Ultra HDR מאפשר לשמור בתמונות מידע נוסף על עוצמת התאורה, וכתוצאה מכך מוצגים בהן צללים והבלטים מפורטים יותר וצבעים עזים יותר. מערכת Android תומכת בתמונות Ultra HDR החל מ-Android 14 (רמת API 34). אם האפליקציה שלכם פועלת בגרסאות האלה, חשוב להגדיר אותה כך שהתמונות האלה יוצגו בצורה תקינה. לעומת זאת, אם באפליקציה לא מוצגות תמונות Ultra HDR, אפשר לחסוך במשאבי המכשיר על ידי השבתת התצוגה של Ultra HDR. בדף הזה נסביר איך לבדוק אם הגרפיקה תומכת ב-Ultra HDR ואיך להציג אותה בצורה נכונה.

בדיקה אם יש מפת רווח

תמונות Ultra HDR מכילות מפת רווח. מפת הרווח משמשת לקביעת הבהירות המוגברת של כל פיקסל בתמונה. כדי לוודא שהתמונה בפורמט Ultra HDR, ממירים את התמונה או את ה-drawable ל-Bitmap ומפעילים את Bitmap.hasGainMap() (זמין מאנדרואיד 14 ואילך) כדי לבדוק אם יש לה מפת רווח.

הגדרת החלון להצגת Ultra HDR

כדי להציג תמונות Ultra HDR עם הטווח הדינמי המלא, מגדירים את מצב הצבע של החלון ל-ActivityInfo.COLOR_MODE_HDR. כדי לעשות זאת, צריך לקרוא ל-method‏ setColorMode() של החלון. (ממשקי ה-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 זמין במקורות המידע הבאים: