Bilder werden geladen

Image vom Laufwerk laden

Mit der zusammensetzbaren Funktion Image können Sie eine Grafik auf dem Bildschirm darstellen. Wenn Sie ein Bild (z. B. PNG, JPEG, WEBP) oder Vektorressource vom Laufwerk laden möchten, verwenden Sie die painterResource API mit der Bildreferenz. Sie müssen den Asset-Typ nicht kennen. Verwenden Sie einfach painterResource in Image- oder paint-Modifikatoren.

DrawScope:

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

Damit deine App zugänglich ist, musst du eine contentDescription für visuelle Elemente auf dem Bildschirm angeben. TalkBack liest die Beschreibung des Inhalts vor. Sie müssen also dafür sorgen, dass der Text auch dann aussagekräftig ist, wenn er laut und übersetzt wird. Im obigen Beispiel wird stringResource() verwendet, um die Beschreibung des übersetzten Inhalts aus der Datei strings.xml zu laden. Wenn das visuelle Element auf dem Bildschirm nur visuell geschmückt ist, setzen Sie contentDescription auf null, damit der Screenreader es ignoriert.

Wenn du untergeordnete ImageBitmap-spezifische Funktionen benötigst, kannst du ImageBitmap.imageResource() verwenden, um eine Bitmap zu laden. Weitere Informationen zu ImageBitmaps finden Sie im Abschnitt ImageBitmap vs. ImageVector.

Drawable-Stütze

painterResource unterstützt derzeit die folgenden Drawable-Typen:

Bild aus dem Internet laden

Zum Laden eines Bildes aus dem Internet stehen mehrere Bibliotheken von Drittanbietern zur Verfügung, die Sie dabei unterstützen. Die Bildladebibliotheken übernehmen einen Großteil der Arbeit. Sie übernehmen sowohl das Caching (Sie müssen 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 zu Ihrer Gradle-Datei hinzu und verwenden Sie einen 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 Bildbibliothek, die von Kotlin-Coroutines (Instacart) unterstützt wird

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