Carregar imagem usando Picasso no Android Studio

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

Simplificando o desenvolvimento de APIs PHP com Swagger

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.

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

 

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

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.

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

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

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);
        *
        * */
    }
}

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.