0Pricing
Android Academy · Aula

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 arredondados
  • BlurTransformation(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

  1. Retrofit e APIs REST
  2. Carregamento de imagens com Coil
  3. Tratamento de erros e experiência do usuário
  4. Notificações push
  5. WorkManager e tarefas em segundo plano
  6. Publicação na Play Store
← Voltar para Android Academy