Carregamento de imagens com Coil
Carregue e armazene em cache imagens da rede com eficiência usando Coil. Aplique transformações (CircleCrop, RoundedCorners) e trate espaços reservados e erros.
Carregamento de imagens com Coil é uma aula grátis de Android Academy no CoddyKit. Esta é a aula 2 de 6. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Android Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Android Academy inclui 6 aulas no total.
Por que usar uma biblioteca de imagens?
Carregar imagens da internet é surpreendentemente complexo:
- Fazer o download em uma thread em segundo plano
- Armazenar em cache no disco e na memória
- Decodificar com eficiência (evitar falhas por OOM)
- Exibir um espaço reservado durante o carregamento
- Tratar erros (link quebrado, ausência de rede)
O Coil cuida de tudo isso em uma única linha de código.
O que é o Coil?
O Coil (Coroutine Image Loader) é uma biblioteca moderna de carregamento de imagens para Android, criada para Kotlin e coroutines.
- Leve — menor que o Glide ou o Picasso
- Focado em Kotlin, com suporte a coroutines
- Ciente do ciclo de vida — cancela carregamentos automaticamente
- Suporta GIF, SVG e quadros de vídeo
Adicionando o Coil
Adicione a dependência em app/build.gradle:
// app/build.gradle
dependencies {
implementation 'io.coil-kt:coil:2.6.0'
}
// Also make sure internet permission is in AndroidManifest.xml:
// <uses-permission android:name="android.permission.INTERNET" />Carregamento básico de imagens
Carregue uma imagem em um ImageView com uma única linha:
import coil.load
// In your Activity or Adapter:
binding.ivAvatar.load("https://picsum.photos/200")
// With a placeholder and error image:
binding.ivAvatar.load("https://picsum.photos/200") {
placeholder(R.drawable.ic_placeholder)
error(R.drawable.ic_error)
crossfade(true) // smooth fade-in animation
}Carregamento em um RecyclerView
O Coil cancela automaticamente os carregamentos pendentes quando um ViewHolder é reutilizado, evitando que imagens erradas apareçam nas linhas erradas:
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val post = getItem(position)
holder.tvTitle.text = post.title
holder.ivCover.load(post.imageUrl) {
placeholder(R.drawable.ic_image_placeholder)
error(R.drawable.ic_broken_image)
crossfade(300) // 300ms fade-in
size(200, 200) // resize to 200×200 pixels
}
}Transformações
Aplique transformações às imagens carregadas:
CircleCropTransformation()— imagem circular (perfeita para avatares)RoundedCornersTransformation(radius)— cantos arredondadosBlurTransformation(context, radius)— efeito de desfoque
Exemplo de transformação
Exiba um avatar de usuário circular:
import coil.load
import coil.transform.CircleCropTransformation
import coil.transform.RoundedCornersTransformation
// Circular avatar
binding.ivAvatar.load(user.profileImageUrl) {
transformations(CircleCropTransformation())
placeholder(R.drawable.ic_default_avatar)
error(R.drawable.ic_default_avatar)
}
// Rounded corners on a card image
binding.ivCover.load(post.coverUrl) {
transformations(RoundedCornersTransformation(16f))
crossfade(true)
}Comportamento do cache
O Coil armazena imagens automaticamente em dois níveis:
- Cache de memória — mais rápido, limpo quando o aplicativo é encerrado
- Cache de disco — permanece entre as inicializações do aplicativo, com 250 MB por padrão
Se o mesmo URL for carregado duas vezes, o segundo carregamento virá do cache — nenhuma solicitação de rede será feita.
Carregamento de diferentes fontes
O Coil pode carregar imagens de várias fontes, não apenas de URLs:
// From a URL (most common)
imageView.load("https://example.com/image.jpg")
// From a URI (e.g., gallery image)
imageView.load(uri)
// From a drawable resource
imageView.load(R.drawable.my_image)
// From a File
imageView.load(File("/sdcard/photo.jpg"))
// From a bitmap
imageView.load(bitmap)Verificação rápida
Qual transformação do Coil o senhor usaria para exibir a foto de perfil de um usuário como um círculo?
Recapitulação: carregamento de imagens com Coil
Agora o senhor pode exibir imagens da rede com eficiência:
- Adicione o Coil com uma única dependência do Gradle
imageView.load(url) { }— carregue com uma única linha- Imagens de substituição para carregamento e erros
- Transformações: CircleCrop, RoundedCorners, Blur
- Armazenamento automático em cache na memória e no disco
- Funciona com URLs, URIs, arquivos, drawables e bitmaps
Próximo: trate os erros adequadamente e ofereça um excelente retorno aos usuários.
Perguntas Frequentes
A aula “Carregamento de imagens com Coil” é grátis?
Sim — o texto completo de “Carregamento de imagens com Coil” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Android Academy, atualize para CoddyKit PRO. O curso de Android Academy inclui 6 aulas no total.
O que vou aprender em “Carregamento de imagens com Coil”?
Carregue e armazene em cache imagens da rede com eficiência usando Coil. Aplique transformações (CircleCrop, RoundedCorners) e trate espaços reservados e erros. Você pratica Android Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Android Academy?
Nenhuma experiência prévia é necessária. Android Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 6.
Quanto tempo leva a aula “Carregamento de imagens com Coil”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Android Academy?
Sim. Cada aula de Android Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Retrofit e APIs REST
- Carregamento de imagens com Coil
- Tratamento de erros e experiência do usuário
- Notificações push
- WorkManager e tarefas em segundo plano
- Publicação na Play Store