Bilder werden geladen

Bild von der Festplatte laden

Mit der Image-Composable-Funktion können Sie eine Grafik auf dem Bildschirm anzeigen. Wenn Sie ein Bild (z. B. PNG, JPEG, WEBP) oder eine Vektorressource von der Festplatte laden möchten, verwenden Sie die painterResource API mit Ihrem Bildverweis. Sie müssen den Typ des Assets 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 Ihre App barrierefrei ist, müssen Sie für visuelle Elemente auf dem Bildschirm eine contentDescription angeben. TalkBack liest die Inhaltsbeschreibung vor. Achten Sie daher darauf, dass der Text sinnvoll ist, wenn er vorgelesen und übersetzt wird. Im obigen Beispiel wird ein stringResource() verwendet, um die übersetzte Inhaltsbeschreibung aus der Datei strings.xml zu laden. Wenn Ihr visuelles Element auf dem Bildschirm nur zur visuellen Dekoration dient, setzen Sie contentDescription auf null, damit es vom Screenreader ignoriert wird.

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

Unterstützung für Drawables

painterResource unterstützt derzeit die folgenden Drawable-Typen:

Bild aus dem Internet laden

Wenn Sie ein Bild aus dem Internet laden möchten, können Sie dazu verschiedene Drittanbieterbibliotheken verwenden. Bibliotheken zum Laden von Bildern nehmen Ihnen viel Arbeit ab. Sie kümmern sich sowohl um das Caching (damit das Bild nicht mehrmals heruntergeladen wird) als auch um die Netzwerkanbindung, 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 zu 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 Bildladebibliothek, die von Kotlin-Coroutinen unterstützt wird (Instacart).

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

Zusätzliche Ressourcen