تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يتيح تنسيق صور Ultra HDR تخزين المزيد من المعلومات حول شدة الضوء، ما يؤدي إلى إبراز التفاصيل بشكل أفضل في الأجزاء الأكثر سطوعًا والأكثر ظلامًا، وإظهار الألوان بشكل أكثر كثافة. يتيح نظام التشغيل Android استخدام صور Ultra HDR بدءًا من الإصدار 14 (المستوى 34 لواجهة برمجة التطبيقات). إذا كان تطبيقك يعمل على هذه الإصدارات، من المهم إعداد تطبيقك لعرض هذه الصور بشكل صحيح. في المقابل، إذا كان تطبيقك لا يعرض صورًا بدقة Ultra HDR، يمكنك توفير موارد الجهاز من خلال عدم تفعيل عرض Ultra HDR. توضّح هذه الصفحة كيفية التحقّق مما إذا كانت الرسومات متوافقة مع Ultra HDR وكيفية عرضها بشكل صحيح.
التحقّق من وجود خريطة كسب
تحتوي صور Ultra HDR على خريطة كسب. يتم استخدام خريطة الكسب لتحديد السطوع المتزايد لكل بكسل في الصورة. للتحقّق مما إذا كانت الصورة بتنسيق Ultra HDR، يمكنك تحويل الصورة أو العنصر القابل للرسم إلى Bitmap واستدعاء Bitmap.hasGainMap() (متاح منذ Android 14) للتحقّق مما إذا كانت تتضمّن خريطة كسب.
ضبط النافذة لعرض محتوى Ultra HDR
لعرض صور Ultra HDR بالنطاق الديناميكي الكامل، اضبط وضع ألوان النافذة على ActivityInfo.COLOR_MODE_HDR. يمكنك إجراء ذلك من خلال استدعاء طريقة setColorMode() الخاصة بالنافذة. (تتوفّر واجهات برمجة التطبيقات هذه على الإصدار 8 من نظام التشغيل Android، ولكن لا يتم عرض الصور بدقة Ultra HDR إلا إذا كان الجهاز يعمل بالإصدار 14 من نظام التشغيل Android أو إصدار أحدث).
خلاصة ما سبق ذكره
يوضّح الرمز البرمجي التالي شكل العملية بأكملها. يفترض هذا الرمز أنّه تم تحميل صورة في Bitmap، ويتحقّق مما إذا كانت الصورة تتضمّن خريطة كسب. إذا كان الأمر كذلك، سيغيّر الرمز وضع ألوان النافذة إلى COLOR_MODE_HDR. إذا لم تتضمّن الصورة خريطة كسب، سيحوّل الرمز النافذة إلى وضع الألوان التلقائي.
Kotlin
valbitmap=/* 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_HDRelseActivityInfo.COLOR_MODE_DEFAULT
Java
finalBitmapbitmap=/* Get Bitmap from Image Resource */binding.imageContainer.setImageBitmap(bitmap);// Set color mode of the activity to the correct color mode.intcolorMode=ActivityInfo.COLOR_MODE_DEFAULT;if(bitmap.hasGainmap())colorMode=ActivityInfo.COLOR_MODE_HDR;requireActivity().getWindow().setColorMode(colorMode);
مراجع إضافية
لمزيد من المعلومات حول صور Ultra HDR، اطّلِع على المراجع الإضافية التالية:
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-08-21 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-21 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Display Ultra HDR images\n\nThe [Ultra HDR image format](/guide/topics/media/platform/hdr-image-format) lets images store more information\nabout the intensity of light, resulting in more detailed highlights and shadows,\nand more intense colors. Android provides support for Ultra HDR images beginning\nwith Android 14 (API level 34). If your app is running on those versions, it's\nimportant to configure your app to display these images properly. On the other\nhand, if your app isn't displaying Ultra HDR images, you can save device\nresources by not enabling Ultra HDR display. This page explains how to check\nwhether graphics support Ultra HDR, and how to display them properly.\n\nCheck for the presence of a gain map\n------------------------------------\n\nUltra HDR images contain a [*gain map*](/guide/topics/media/platform/hdr-image-format#gain_map-generation). The gain map is\nused to determine the increased brightness of each pixel in the image. To verify\nif an image is in the Ultra HDR format, convert the image or drawable into a\n[`Bitmap`](/reference/android/graphics/Bitmap) and call [`Bitmap.hasGainMap()`](/reference/android/graphics/Bitmap#hasGainmap())\n(available since Android 14) to check if it has a gain map.\n\nConfigure your window to display Ultra HDR\n------------------------------------------\n\nTo display Ultra HDR images with the full dynamic range, set the window's color\nmode to [`ActivityInfo.COLOR_MODE_HDR`](/reference/android/content/pm/ActivityInfo#COLOR_MODE_HDR). Do this by calling the\nwindow's [`setColorMode()`](/reference/android/view/Window#setColorMode(int)) method. (These APIs are\navailable from Android 8; however, images are not displayed in Ultra HDR unless\nthe device is running Android 14 or higher.)\n| **Note:** You can set a window's color mode in the Android manifest, but we don't recommend doing this. For optimum device performance, you should dynamically change a window's color mode to HDR when you're displaying an Ultra HDR image.\n| **Note:** Android takes screenshots in SDR. HDR content is tonemapped to SDR in screenshots.\n\nPutting it all together\n-----------------------\n\nThe following code shows how the whole process looks. This code assumes an image\nis loaded into a Bitmap, and checks if the image has a gain map. If it does, the\ncode switches the window's color mode to [`COLOR_MODE_HDR`](/reference/android/content/pm/ActivityInfo#COLOR_MODE_HDR). If\nthe image does not have a gain map, the code switches the window to the default\ncolor mode. \n\n### Kotlin\n\n```kotlin\nval bitmap = /* Get Bitmap from Image Resource */\nbinding.imageContainer.setImageBitmap(bitmap)\n\n// Set color mode of the activity to the correct color mode.\nrequireActivity().window.colorMode =\n if (bitmap.hasGainmap()) ActivityInfo.COLOR_MODE_HDR else ActivityInfo.COLOR_MODE_DEFAULT\n```\n\n### Java\n\n```java\nfinal Bitmap bitmap = /* Get Bitmap from Image Resource */\nbinding.imageContainer.setImageBitmap(bitmap);\n\n// Set color mode of the activity to the correct color mode.\nint colorMode = ActivityInfo.COLOR_MODE_DEFAULT;\nif (bitmap.hasGainmap()) colorMode = ActivityInfo.COLOR_MODE_HDR;\nrequireActivity().getWindow().setColorMode(colorMode);\n```\n\nAdditional resources\n--------------------\n\nTo learn more about Ultra HDR images, see the following additional resources:\n\n- Video: [Creating high-quality Android media\n experiences](https://www.youtube.com/watch?v=sv9ICtooWBc&t=284s)\n- Sample app: [Displaying Ultra HDR](https://github.com/android/platform-samples/blob/main/samples/graphics/ultrahdr/src/main/java/com/example/platform/graphics/ultrahdr/display/DisplayingUltraHDR.kt)\n- [Ultra HDR image format specification](/guide/topics/media/platform/hdr-image-format)\n- Video: [Android Developer Story: Instagram's early adoption of Ultra HDR transforms UX in only 3 months](https://www.youtube.com/watch?v=gGFHVi3NPWM)"]]