Como carregar imagens

Carregar uma imagem do disco

Use o elemento combinável Image para mostrar um gráfico na tela. Para carregar uma imagem (por exemplo, PNG, JPEG, WEBP) ou um recurso vetorial do disco, use a API painterResource com a referência necessária. Não é preciso saber o tipo do recurso, basta usar a painterResource nos modificadores Image ou paint.

DrawScope:

Image(
    painter = painterResource(id = R.drawable.dog),
    contentDescription = stringResource(id = R.string.dog_content_description)
)

Para garantir que o app seja acessível, forneça uma contentDescription para elementos visuais na tela. O TalkBack lê a descrição do conteúdo. Portanto, você precisa garantir que o texto seja significativo se lido em voz alta e traduzido. No exemplo acima, um stringResource() é usado para carregar a descrição de conteúdo traduzida do arquivo strings.xml. Se o elemento visual na tela for puramente para decoração visual, defina contentDescription como null para que o leitor de tela a ignore.

Se você precisar de uma funcionalidade específica de ImageBitmap de nível inferior, use ImageBitmap.imageResource() para carregar um bitmap. Para saber mais sobre ImageBitmaps, leia a seção ImageBitmap versus ImageVector.

Suporte a drawables

No momento, o painterResource tem suporte aos seguintes tipos de drawable:

Carregar uma imagem da Internet

Para carregar uma imagem da Internet, há várias bibliotecas de terceiros disponíveis para ajudar você a lidar com o processo. As bibliotecas de carregamento de imagens fazem grande parte do trabalho pesado para você. Elas processam o armazenamento em cache (para não fazer o download da imagem várias vezes) e a lógica da rede para fazer o download da imagem e mostrá-la na tela.

Por exemplo, para carregar uma imagem com a Coil (link em inglês), da Instacart, adicione a biblioteca ao arquivo do Gradle e use uma AsyncImage para carregar uma imagem de um URL:

AsyncImage(
    model = "https://example.com/image.jpg",
    contentDescription = "Translated description of what the image contains"
)

Uma biblioteca de carregamento de imagens fornecida pelas corrotinas do Kotlin (Instacart).

Uma biblioteca de carregamento rápido e eficiente de imagens para Android com foco em rolagem suave (Google).