Bilder werden geladen

Bild von der Festplatte laden

Verwenden Sie die komponierbare Funktion Image, um eine Grafik auf dem Bildschirm anzuzeigen. 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. Sie müssen den Typ des Assets nicht kennen. Verwenden Sie einfach painterResource in den Modifikatoren Image oder paint.

DrawScope:

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

Damit deine App barrierefrei ist, gib eine contentDescription für visuelle Elemente auf dem Bildschirm an. TalkBack liest die Inhaltsbeschreibung vor. Achte daher darauf, dass der Text sinnvoll ist, wenn er vorgelesen und übersetzt wird. Im vorherigen Beispiel wird ein stringResource() verwendet, um die übersetzte Inhaltsbeschreibung aus der Datei strings.xml zu laden. Wenn das visuelle Element auf dem Bildschirm nur zur Dekoration dient, legen Sie für contentDescription den Wert null fest, damit es vom Screenreader ignoriert wird.

Wenn Sie ImageBitmap-spezifische Funktionen auf niedrigerer Ebene benötigen, können Sie ImageBitmap.imageResource() verwenden, um eine Bitmap zu laden. Weitere Informationen zu ImageBitmaps finden Sie im Abschnitt Vergleich von ImageBitmap mit ImageVector.

Unterstützung für Drawable-Ressourcen

painterResource unterstützt die folgenden Drawable-Typen:

Bild aus dem Internet laden

Zum Laden eines Bildes aus dem Internet stehen mehrere Drittanbieterbibliotheken zur Verfügung, die Sie bei der Verarbeitung unterstützen. Bibliotheken zum Laden von Bildern nehmen Ihnen viel Arbeit ab. Sie übernehmen sowohl das Caching (damit Sie das Bild nicht mehrmals herunterladen müssen) als auch die Netzwerklogik, um das Bild herunterzuladen und auf dem Bildschirm anzuzeigen.

Wenn Sie beispielsweise ein Bild mit Coil von Instacart laden möchten, fügen Sie die Bibliothek Ihrer Gradle-Datei hinzu und verwenden Sie ein AsyncImage, um ein Bild von einer 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-Koroutinen unterstützt wird (Instacart).

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

Zusätzliche Ressourcen