Carregar imagem usando Picasso no Android Studio

Usando a biblioteca Picasso podemos carregar imagens da web dentro do componente ImageView.

Publicado em

Para que nossos aplicativos não usem informações locais ou até mesmo para não ficar estático, podemos utilizar diversas bibliotecas ou recursos para fazer requisições de informações da internet. Neste artigo será apresentado a biblioteca Picasso, em especifico apenas a parte da requisição e carregamento da imagem em um ImageView.

Antes de mais nada, devemos acessar a página da biblioteca e obter os dados do Gradle, para isto acesse http://square.github.io/picasso, note que quase no final da página, temos uma guia chamada Gradle, devemos copiar esta informação e colar dentro do nosso pacote.

Pacote Gradle no git hub
Pacote Gradle no git hub

Dentro do nosso projeto abra o arquivo Module.app, que está dentro de app/Gradle Scripts/build.gradle (segundo item).

Inserir pacote Gradle
Inserir pacote Gradle

 

Dentro do arquivo de XML, em dependencies, insira o pacote Gradle que obteve no site do Git Hub, como mostra a imagem a seguir.

Pacote do Picasso inserido no Gradle
Pacote do Picasso inserido no Gradle

Apenas inserir as informações do pacote não é o suficiente para que a biblioteca fique ativa em nossa aplicação. Assim que inserir o pacote em dependencies, um botão na parte superior direita do editor de script irá surgir, clique no botão Sync Now para sincronizar a biblioteca com seu pacote.

Sincronizar pacote do Picasso com a aplicação.
Sincronizar pacote do Picasso com a aplicação.

Aguarde a biblioteca ser baixada e aplicada no pacote, dependendo da velocidade de sua conexão pode demorar.

Sincronizando pacote Gradle com Android Studio.
Sincronizando pacote Gradle com Android Studio.

Com a biblioteca pronta, agora apenas precisamos fazer as requisições, para isto insira em seu layout um ImageView, Button e Plain Text.

Projeto com ImageView, TextView e um Buttom.
Projeto com ImageView, TextView e um Buttom.

Nosso botão terá um método chamado CarregarImagem(), quando ele for chamado, vai obter a url da imagem que está dentro do campo txtUrl, em seguida carregar para dentro do imvImagem.

A biblioteca do Picasso precisa apenas do contexto, url da imagem e o ImageView que irá carregar a imagem requisitada.  Veja o código abaixo.

Código 01:

Se testarmos nosso aplicativo agora, nada irá acontecer, por que necessitamos atribuir a permissão de acesso à internet. Para atribuir está permissão, abra o arquivo que está em: app/manifest/AndroidManifest.xml.

Insira a seguinte linha de permissão:  

package com.gunnarcorrea.picassorequisicao;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.squareup.picasso.Picasso;

public class MainActivity extends AppCompatActivity {

    private TextView txtUrl; //Variável privada do tipo TextView
    private ImageView imvImagem; //Variável privada do tipo ImageView

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        txtUrl = (TextView) findViewById(R.id.txtUrl); //Fazemos um CAST da variável txtUrl e associamos ela ao componente txtUrl presente na View.
        imvImagem = (ImageView) findViewById(R.id.imvImagem); //Fazemos um CAST da variável imvImagem e associamos ela ao componente imvImagem presente na View.
    }

    public void CarregarImagem(View v) {
        Picasso.with(v.getContext()).load(txtUrl.getText().toString()).into(imvImagem);
        /*
        *Picasso.with(Aqui vem o contexto).load(URL da imagem).into(ImageView responsável pelo render);
        *
        * */
    }
}

Permissão para acesso a internet no AndroidManifest.xml.
Permissão para acesso a internet no AndroidManifest.xml.

Agora executando nosso aplicativo, podemos ver o Picasso em ação, carregando a imagem informada. É importante lembrar, que o Picasso necessita de internet para carregar as imagens e quando não há conexão, o aplicativo exibe uma mensagem de erro e fecha.

Aplicativo Android requisitando imagem com o Picasso.
Aplicativo Android requisitando imagem com o Picasso.

Gunnar Correa
Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web, Especialista em Tecnologias na Educação e Pós-graduando em Segurança da Informação. Começou seus estudos na área de programação quando era criança, e atualmente, está estudando desenvolvimento de jogos. Fundador da SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.

Todos os nossos cursos em promoção
Todos os nossos cursos em promoção

Webstories

Todos os nossos cursos em promoção


Deixe um comentário
Aguarde...
Todos os nossos cursos em promoção