Carica un'immagine dal disco
Utilizza l'elemento componibile Image per visualizzare un elemento grafico 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 è necessario conoscere il tipo di asset, 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 assicurarti che la tua app sia accessibile, fornisci un contentDescription per gli elementi visivi sullo schermo. TalkBack legge la descrizione dei contenuti, quindi devi assicurarti che il testo sia significativo se letto ad alta voce e tradotto. Nell'esempio precedente, viene utilizzato un stringResource() per caricare la descrizione dei contenuti tradotta dal file strings.xml. Se l'elemento visivo sullo schermo ha una funzione puramente decorativa, imposta contentDescription su null in modo che 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 per gli elementi drawable
painterResource supporta i seguenti tipi di elementi drawable:
AnimatedVectorDrawableBitmapDrawable(PNG, JPG, WEBP)ColorDrawableVectorDrawable
Carica un'immagine da internet
Per caricare un'immagine da internet, sono disponibili diverse librerie di terze parti che ti aiutano a gestire la procedura. Le librerie di caricamento delle immagini svolgono gran parte del lavoro più impegnativo 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" )
Spirale
Una libreria di caricamento delle immagini supportata dalle coroutine Kotlin (Instacart).
Glide
Una libreria di caricamento delle immagini rapida 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 Compose
- Grafica in Compose