פורמט התמונה 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()
של החלון. (ממשקי ה-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: Instagram התחילה להשתמש ב-Ultra HDR בשלב מוקדם, והשינוי בחוויית המשתמש התרחש תוך 3 חודשים בלבד