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:
AnimatedVectorDrawable
BitmapDrawable
(PNG, JPG, WEBP)ColorDrawable
VectorDrawable
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" )
Spule
Eine Bildbibliothek, die von Kotlin-Coroutines (Instacart) unterstützt wird
Gleiten
Eine schnelle und effiziente Bibliothek zum Laden von Bildern für Android, die auf flüssiges Scrollen ausgerichtet ist (Google).
Empfehlungen für dich
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Ressourcen in „Compose“
- Bedienungshilfen in „Compose“
- Grafiken in „Compose“