Mit dem Ultra-HDR-Bildformat können Bilder mehr Informationen speichern über die Intensität des Lichts, was zu detaillierteren Spitzlichtern und Schatten und intensivere Farben. Android unterstützt Ultra HDR-Bilder ab sofort mit Android 14 (API-Level 34). Wenn Ihre App in diesen Versionen läuft, ist es müssen Sie Ihre App so konfigurieren, dass diese Bilder korrekt angezeigt werden. Auf der anderen Wenn deine App keine Ultra HDR-Bilder anzeigt, kannst du wenn das Ultra HDR-Display deaktiviert ist. Auf dieser Seite wird erläutert, wie Sie ob die Grafik Ultra HDR unterstützt und wie sie korrekt angezeigt werden.
Prüfen, ob eine Verstärkungskarte vorhanden ist
Ultra-HDR-Bilder enthalten eine Verstärkungskarte. Die Verstärkungskarte
wird verwendet, um die erhöhte Helligkeit der einzelnen Pixel im Bild zu bestimmen. Zur Bestätigung
wenn ein Bild im Ultra HDR-Format vorliegt, konvertiere das Bild oder Drawable in ein
Bitmap
und Bitmap.hasGainMap()
anrufen
(verfügbar seit Android 14), um zu prüfen, ob eine Karte mit Verstärkung verfügbar ist.
Fenster für die Darstellung von Ultra HDR konfigurieren
Zur Anzeige von Ultra HDR-Bildern mit vollem Dynamikumfang musst du die Fensterfarbe festlegen
Modus auf ActivityInfo.COLOR_MODE_HDR
. Rufen Sie dazu die Methode
setColorMode()
-Methode des Fensters. (Diese APIs sind
verfügbar ab Android 8; Bilder werden jedoch nur dann in Ultra HDR angezeigt, wenn sie
auf dem Gerät Android 14 oder höher installiert ist.
Zusammenfassung
Der folgende Code zeigt den gesamten Prozess. Bei diesem Code wird von einem Bild ausgegangen,
in eine Bitmap geladen und überprüft, ob das Bild eine Verstärkungskarte hat. Ist dies der Fall,
wird der Farbmodus des Fensters in COLOR_MODE_HDR
geändert. Wenn
das Bild keine Verstärkungskarte hat, wechselt der Code zum Standardfenster
Farbmodus.
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);
Weitere Informationen
Weitere Informationen zu Ultra HDR-Bildern finden Sie in den folgenden zusätzlichen Ressourcen:
- Video: Hochwertige Android-Medien erstellen Erfahrungen
- Beispiel-App: Ultra HDR anzeigen
- Ultra-HDR-Bildformatspezifikation
- Video: Android-Entwicklerbericht: Instagrams erste Nutzung von Ultra HDR verändert die Nutzererfahrung in nur drei Monaten