Bilder werden geladen

Image vom Laufwerk laden

Mit der zusammensetzbaren Funktion Image kannst du eine Grafik auf dem Bildschirm anzeigen. Wenn Sie ein Bild (z. B. PNG, JPEG, WEBP) oder eine Vektorressource vom Laufwerk laden möchten, verwenden Sie die painterResource API mit Ihrer Bildreferenz. Du musst den Asset-Typ nicht kennen. Verwende einfach painterResource im Image- oder paint-Modifikator.

DrawScope:

Image(
    painter = painterResource(id = R.drawable.dog),
    contentDescription = stringResource(id = R.string.dog_content_description)
)

Geben Sie eine contentDescription für visuelle Elemente auf dem Bildschirm an, damit Ihre App zugänglich ist. TalkBack liest die Inhaltsbeschreibung vor. Daher muss der Text aussagekräftig sein, wenn er laut vorgelesen und übersetzt wird. Im obigen Beispiel wird ein stringResource() verwendet, um die übersetzte Inhaltsbeschreibung aus der Datei strings.xml zu laden. Wenn das visuelle Element nur zur optischen Gestaltung dient, setzen Sie contentDescription auf null, damit der Screenreader es ignorieren kann.

Wenn Sie untergeordnete ImageBitmap-spezifische Funktionen benötigen, können Sie ImageBitmap.imageResource() zum Laden einer Bitmap verwenden. Weitere Informationen zu ImageBitmaps finden Sie im Abschnitt ImageBitmap versus ImageVector.

Drawable-Unterstützung

painterResource unterstützt derzeit die folgenden Drawable-Typen:

Bild aus dem Internet laden

Für das Laden eines Bildes aus dem Internet stehen verschiedene Bibliotheken von Drittanbietern zur Verfügung, die Sie bei der Verarbeitung unterstützen. Bibliotheken zum Laden von Bildern übernehmen einen Großteil der Arbeit für Sie. Sie übernehmen sowohl das Caching (damit Sie das Bild nicht mehrmals herunterladen) als auch die Netzwerklogik, um das Bild herunterzuladen und auf dem Bildschirm anzuzeigen.

Wenn Sie beispielsweise ein Bild mit Coil aus Instacart laden möchten, fügen Sie die Bibliothek Ihrer Gradle-Datei hinzu und verwenden Sie ein AsyncImage, um ein Bild über eine URL zu laden:

AsyncImage(
    model = "https://example.com/image.jpg",
    contentDescription = "Translated description of what the image contains"
)

Eine Bibliothek zum Laden von Bildern, die von Kotlin-Coroutinen (Instacart) unterstützt wird.

Eine Bibliothek für schnelles und effizientes Laden von Bildern für Android, die auf optimiertes Scrollen ausgerichtet ist (Google).