Bild von der Festplatte laden
Mit der Image zusammensetzbaren 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 Modifizierern.
DrawScope:
Image( painter = painterResource(id = R.drawable.dog), contentDescription = stringResource(id = R.string.dog_content_description) )
Damit Ihre App barrierefrei ist, müssen Sie eine contentDescription für visuelle Elemente auf dem Bildschirm angeben. TalkBack liest die Inhaltsbeschreibung vor. Sie müssen also darauf achten, dass der Text beim Vorlesen und Übersetzen sinnvoll ist. Im obigen Beispiel wird stringResource() verwendet, um die übersetzte Inhaltsbeschreibung aus der Datei strings.xml zu laden. Wenn das visuelle Element auf dem Bildschirm nur zur Dekoration dient, setzen Sie contentDescription auf null, damit es vom Screenreader ignoriert wird.
Wenn Sie spezifische Funktionen für ImageBitmap auf 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:
AnimatedVectorDrawableBitmapDrawable(PNG, JPG, WEBP)ColorDrawableVectorDrawable
Bild aus dem Internet laden
Wenn Sie ein Bild aus dem Internet laden möchten, stehen Ihnen mehrere Drittanbieterbibliotheken zur Verfügung, die Ihnen dabei helfen. Bibliotheken zum Laden von Bildern übernehmen einen Großteil der Arbeit für Sie. Sie verarbeiten sowohl das Caching (damit Sie das Bild nicht mehrmals herunterladen müssen) als auch 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 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 von Kotlin-Coroutinen unterstützt wird (Instacart).
Glide
Eine schnelle und effiziente Bibliothek zum Laden von Bildern für Android, die auf reibungsloses Scrollen ausgelegt ist (Google).
Zusätzliche Ressourcen
Empfehlungen für Sie
- Hinweis: Linktext wird angezeigt, wenn JavaScript deaktiviert ist
- Ressourcen in Compose
- Barrierefreiheit in Compose
- Grafiken in Compose