Caricare un'immagine dal disco
Utilizza il composable Image
per visualizzare una grafica sullo schermo. Per caricare un'immagine
(ad esempio: PNG, JPEG, WEBP) o una risorsa vettoriale dal disco, utilizza l'API
painterResource
con il riferimento all'immagine. Non devi conoscere il tipo
di asset, ti basta utilizzare painterResource
nei modificatori Image
o paint
.
DrawScope
:
Image( painter = painterResource(id = R.drawable.dog), contentDescription = stringResource(id = R.string.dog_content_description) )
Per garantire che la tua app sia accessibile, fornisci una contentDescription
per
gli elementi visivi sullo schermo. TalkBack legge la descrizione dei contenuti, quindi
devi assicurarti che il testo abbia un significato se letto ad alta voce e tradotto. Nell'esempio
precedente, viene utilizzato un stringResource()
per caricare la descrizione dei contenuti tradotti
dal file strings.xml
. Se l'elemento visivo sullo schermo
è puramente decorativo, imposta contentDescription
su null
affinché
lo screen reader lo ignori.
Se hai bisogno di funzionalità specifiche di ImageBitmap
di livello inferiore, puoi utilizzare
ImageBitmap.imageResource()
per caricare una bitmap. Per saperne di più su
ImageBitmap, leggi la sezione ImageBitmap e ImageVector.
Supporto dei disegnabili
painterResource
al momento supporta i seguenti tipi di risorse disegnabili:
AnimatedVectorDrawable
BitmapDrawable
(PNG, JPG, WEBP)ColorDrawable
VectorDrawable
Caricare un'immagine da internet
Per caricare un'immagine da internet, sono disponibili diverse librerie di terze parti per aiutarti a gestire il processo. Le librerie di caricamento delle immagini fanno gran parte del lavoro per te: gestiscono sia la memorizzazione nella cache (in modo da non scaricare l'immagine più volte) sia la logica di rete per scaricare l'immagine e visualizzarla sullo schermo.
Ad esempio, per caricare un'immagine con Coil
da Instacart, aggiungi la libreria al file gradle e utilizza un AsyncImage
per caricare un'immagine da un URL:
AsyncImage( model = "https://example.com/image.jpg", contentDescription = "Translated description of what the image contains" )
Bobina
Una libreria di caricamento delle immagini basata su Kotlin Coroutines (Instacart).
Glide
Una libreria di caricamento delle immagini veloce ed efficiente per Android incentrata sullo scorrimento fluido (Google).
Risorse aggiuntive
Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Risorse in Compose
- Accessibilità in Scrivi
- Grafica in Composizione