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 Ihre App barrierefrei ist, geben Sie für visuelle Elemente auf dem Bildschirm eine contentDescription an. TalkBack liest die Inhaltsbeschreibung vor. Sie müssen also dafür sorgen, 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, setze contentDescription auf null, damit der Screenreader es ignoriert.
Wenn Sie spezifische Funktionen auf niedrigerer Ebene für ImageBitmap 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:
AnimatedVectorDrawableBitmapDrawable(PNG, JPG, WEBP)ColorDrawableVectorDrawable
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" )
Spirale
Eine Bibliothek zum Laden von Bildern, die auf Kotlin-Koroutinen basiert (Instacart).
Glide
Eine schnelle und effiziente Bibliothek zum Laden von Bildern für Android, die auf optimiertes Scrollen ausgerichtet ist (Google).
Zusätzliche Ressourcen
Empfehlungen für Sie
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Ressourcen in Compose
- Barrierefreiheit in Compose
- Grafiken in Compose