22 de maio de 2012

Download de uma Imagem com AsyncTask - Android

Pessoal, hoje irei deixar registrado uma coisa que muitos pensam ser complexo, mas de complexo não tem nada, download de uma imagem. Graças a santo Android que desenvolveu uma classe auxiliar, "BitmapFactory", responsável pela criação do Bitmap que corresponde a imagem, não é trabalho nenhum fazer esta ação.

Tudo que precisamos fazer o código abaixo em uma thread diferente da UI, ou seja, devemos utilizar o recurso de AsyncTask em nosso código fonte. Veremos como é simples mesclar esses dois recurso da linguagem Android.

Para começarmos precisamos declarar um ImageView que será o responsável por exibir na tela a imagem que será baixada, uma String que será responsável por guardar o link da imagem que nós iremos baixar (coloquei uma qualquer) e a AsyncTask que será responsável por criar uma nova Thread para que o processamento de download da imagem não interfira na thread da UI, ocasionando um travamento do aplicativo.
Depois disso, tudo que precisamos fazer é chamar no nosso onCreate a nossa AsyncTask, não esquecendo de inicializar nosso ImageView, já que iremos modificar seu conteúdo quando nosso resultado for diferente de 'null'.

Simples, não é? =)

Espero que ajude vocês! =)
Abraço.

4 comentários:

  1. como eu poderia fazer para baixar mais de uma foto ao mesmo tempo, com os links armazenados em um array?

    obrigado desde já!

    ResponderExcluir
  2. e como usaria mais de uma imagem em uma gallery.

    ResponderExcluir
  3. Uilian e Anônimo,
    Tudo bem?

    Respondendo a pergunta dos dois, SIM É POSSÍVEL!
    Você pode criar um Objeto que contenha a ImageView que será atualizada e a URL da imagem que será baixada. E no AsyncTask, você criaria uma List deste Object e baixaria as imagens em um FOR-EACH, atualizando suas respectivas views no término.

    Algo do tipo! =)

    Espero que ajude.

    ResponderExcluir