פורמט התמונה Ultra HDR מאפשר לתמונות לאחסן יותר מידע עוצמת האור, וכתוצאה מכך מתקבלים אזורים בהירים וצלליות מפורטים יותר, וצבעים נועזים יותר. מערכת Android מספקת תמיכה בהפעלה של תמונות Ultra HDR עם Android 14 (רמת API 34). אם האפליקציה שלך פועלת בגרסאות האלה, חשוב להגדיר את האפליקציה כך שתציג את התמונות האלה כראוי. בצד השני אם באפליקציה לא מוצגות תמונות Ultra HDR, אפשר לשמור את המכשיר על ידי השבתת מסך Ultra HDR. בדף הזה מוסבר איך לבדוק אם הגרפיקה תומכת ב-Ultra HDR, ואיך להציג אותם כראוי.
![גרפיקה שמציגה סימולציה של ההבדל בין טווח דינמי סטנדרטי לטווח דינמי גבוה. בגרפיקה מוצג נוף עם שמיים מעוננים. בחצי הימני, שהוא מדמה HDR, יש אזורים בהירים יותר, צלליות כהות יותר וצבעים בהירים יותר.](https://developer.android.com/static/media/images/grow/ultrahdr-simulation.png?authuser=9&hl=he)
איך בודקים אם יש מפת קלט
תמונות Ultra HDR מכילות מפת הוספה. מפת הצבירה היא
משמש לקביעת הבהירות המוגברת של כל פיקסל בתמונה. כדי לאמת
אם התמונה היא בפורמט Ultra HDR, צריך להמיר את התמונה או לצייר עליה
Bitmap
והתקשרות אל Bitmap.hasGainMap()
(האפשרות זמינה החל מ-Android 14) כדי לבדוק אם יש לו מפת קלט.
הגדרת החלון להצגת Ultra HDR
כדי להציג תמונות Ultra HDR עם הטווח הדינמי המלא, צריך להגדיר את צבע החלון
למצב ActivityInfo.COLOR_MODE_HDR
. כדי לעשות זאת, שולחים
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