GridView no Android, Entendendo e Utilizando

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog. Você receberá um email de confirmação. Somente depois de confirma-lo é que poderei lhe enviar os conteúdos exclusivos.

Email inválido.
Blog /Android /GridView no Android, Entendendo e Utilizando

GridView no Android, Entendendo e Utilizando

Vinícius Thiengo
(11121) (26)
Go-ahead
"Todas as coisas que eu fiz foram feitas sem eu ter dinheiro e também de não ter feito antes."
Steve Wozniak
Kotlin Android
Capa do livro Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia
TítuloDesenvolvedor Kotlin Android - Bibliotecas para o dia a dia
CategoriasAndroid, Kotlin
AutorVinícius Thiengo
Edição
Capítulos19
Páginas1035
Acessar Livro
Treinamento Oficial
Android: Prototipagem Profissional de Aplicativos
CursoAndroid: Prototipagem Profissional de Aplicativos
CategoriaAndroid
InstrutorVinícius Thiengo
NívelTodos os níveis
Vídeo aulas186
PlataformaUdemy
Acessar Curso
Receitas Android
Capa do livro Receitas Para Desenvolvedores Android
TítuloReceitas Para Desenvolvedores Android
CategoriaDesenvolvimento Android
AutorVinícius Thiengo
Edição
Ano2017
Capítulos20
Páginas936
Acessar Livro
Código Limpo
Capa do livro Refatorando Para Programas Limpos
TítuloRefatorando Para Programas Limpos
CategoriaEngenharia de Software
AutorVinícius Thiengo
Edição
Capítulos46
Páginas599
Acessar Livro
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Conteúdo Exclusivo
Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido

Opa! Blz?

Nesse vídeo dou continuidade ao série de vídeos falando sobre os componentes visuais do Android falando agora sobre o GridView. Você provavelmente deve estar achando estranho ou confuso devido a eu já ter falado do GridLayout, mas não se engane, ambos aparentam ser a mesma coisa, mas não são, começando já que para inserir elementos em um GridView nós precismamos de uma implementação da interface ListAdapter já com o GridLayout não.

Fique ligado para os atributos columnWith e numColuns do GridView, pois ambos são de extrema importância nesse componente visual. Note que não me aprofundei na explicação da implementação da classe BaseAdapter que implementa a interface ListAdapter, pois já fiz um post (vídeo) falando sobre ela, se você ainda não o viu, segue: Utilizando BaseAdapter Para Personalização Completa da ListView.

O link para download do projeto se encontra logo abaixo no post.

Página da classe GridView no site de desenvolvedores do Android

Segue imagem esquema do GridView:

GridView no Android, Entendendo e Utilizando

Compartilhe, comente! Vlw.

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido

Relacionado

RelativeLayout no Android, Entendendo e UtilizandoRelativeLayout no Android, Entendendo e UtilizandoAndroid
AbsoluteLayout no Android, Entendendo e UtilizandoAbsoluteLayout no Android, Entendendo e UtilizandoAndroid
ScrollView e HorizontalScrollView no Android, Entendendo e UtilizandoScrollView e HorizontalScrollView no Android, Entendendo e UtilizandoAndroid
GridLayout no Android, Entendendo e UtilizandoGridLayout no Android, Entendendo e UtilizandoAndroid

Compartilhar

Comentários Facebook

Comentários Blog (26)

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...
29/10/2016
Thiego segui toda a aula, tudo certo. Agora eu tenho 12 imagens e eu queria que cada uma chamasse uma activity, poderia me ajudar no código. Todas as imagens chamam o toast normal, como no vídeo.
Responder
Vinícius Thiengo (0) (0)
01/11/2016
Alberto, blz?

Utilize o listener de clique setOnItemClickListener() em seu GrifView.

Melhor do que explicar aqui veja o que fiz com o ListView nesse projeto: https://github.com/viniciusthiengo/GeoLocationAds/blob/master/app/src/main/java/br/com/thiengo/geolocationads/MainActivity.java

Mais precisamente acesse o método initResults(), como coloquei o setOnItemClickListener() no ListView. Você fará o mesmo com o GridView.

É importante que você entenda a lógica de negócio, digo, o uso dos objetos na list para corretamente acessar a posição que foi clicada e enviar os dados para a Activity de detalhe. Abraço
Responder
Alisson Faria (1) (0)
28/07/2016
Olá Thiengo blz?

Estou precisando implementar uma lista de tabelas, igual a tabelas de grupos de futebol com varias colunas, e que possua click nesses elementos das linhas. As colunas serão estáticas e o número de linhas dinâmico. Gostaria de saber a melhor maneira de se implementar e o que utilizar.
desde já Obrigado!
Responder
Vinícius Thiengo (0) (0)
01/08/2016
Fala Alisson, blz aqui.
Primeiro veja se já não existe um modelo de tabela fácil de utilizar em uma library aqui: https://android-arsenal.com/search?q=table

Caso nada, recomendo que utilize um GridView mesmo ou até um TableLayout (http://www.thiengo.com.br/tablelayout-no-android-entendendo-e-utilizando ) via Java API, dessa forma vc o terá com número de linhas dinâmico. Abraço
Responder
14/06/2016
Implementei seu post "Utilizando BaseAdapter Para Personalização Completa da ListView" (apesar de ainda não conseguir fazer a figura aparecer, conforme perguntei lá), mas não vi muita diferença de visual
Responder
Vinícius Thiengo (0) (0)
18/06/2016
Fala Daniel, blz?
Respondi seu comentário lá em BaseAdapter. Aqui em GridView, trabalhou com a definição de colunas? Somente assim verá o visual diferente. Abraço
Responder
Daniel Tibúrcio (1) (0)
08/06/2016
Thiengo, o que me recomenda para melhorar o visual de um app que já está pronto, apresentando os dados corretamente, mas de forma meio rudimentar, adicionando TextView em TableRow e TableLayout. Vou marcar você num post do grupo AndroidPro para você entender melhor o que quero fazer. Obrigado
Responder
Vinícius Thiengo (0) (0)
11/06/2016
Daniel, blz?
Vc tem mais ou menos uma ideia do que quer, digo, algum layout esboçado no papel ou APP similar? Abraço
Responder
Han Arantes (2) (0)
03/09/2015
Excelente conteúdo Thiengo! Seria legal se você fizesse um tutorial sobre GridView com Drag and Drop, pesquisei por aí e não achei nenhum tutorial de fácil entendimento
Responder
Vinícius Thiengo (0) (0)
03/09/2015
Fala Han Arantes, blz?
Vlw a dica. Já deu uma olhada nessas libs:

https://android-arsenal.com/search?q=grid

https://android-arsenal.com/search?q=drag

Abraço
Responder
RUAN ALVES (1) (0)
21/04/2015
Otima video aula, seguinte estou remodelando uma aplicação, e ela tem que rodar no 2.3 obrigatoriamente :( ... estava usando linearlayout para organizar os icones, e fica muito bagunçado, quero usar o gridView, mais quando uso, os meus primeiros icones, ficam meio brancos, é algum efeito dele, tem como tirar?
Responder
Vinícius Thiengo (1) (0)
21/04/2015
Fala Ruan, blz?
Esse efeito aparece somente no emulador ou no device real tb? Veja a possibilidade de utilizar o RecyclerView com um LayoutManager de Grid, se não me engano roda tb no Android 2.3. A vantagem do RecyclerVIew é que ele é mais eficiente, veja os vídeos abaixo para lhe ajudar se ainda não os conhece. Abraço

RecyclerView, Material Design Android - Parte 2 (http://www.thiengo.com.br/recyclerview-material-design-android-parte-2 )

Animação, onLongPress e GridLayoutManager em RecyclerView, Material Design Android - Parte 3 (http://www.thiengo.com.br/animacao-onlongpress-e-gridlayoutmanager-em-recyclerview-material-design-android-parte-3 )
Responder
Ruan Alves (1) (0)
22/04/2015
muito obrigado! é por que eu tinha que fazer em GridView por enquanto, poiso mesmo nem usava isso, o projeto ainda é em eclipse, e precisava  usar uma tecnologia antiga ... Eu sofri muito pra colocar HEADER e FOOTER, nossa sofrimento, mais vou testar o Recicly View ... :)
Responder
Ruan Alves (1) (0)
22/04/2015
Thiengo, estou fazendo uma tela, que tem um a GRID que suporta 3 colunas, quando viro a tela, ela tem que pegar 4 colunas, eu fiz outra pasta layout-land, coloquei o arquivo la e com o numeros de colunas 4, mais ele nao pega dijeito nenhum, tem outra maneira? um script?
Responder
Vinícius Thiengo (1) (0)
22/04/2015
Ruan, tem outra maneira sim, alias bem mais fácil, vc continua com o mesmo layout, o que acontece é que quando o device é rotacionado e consequentemente muda a orientação da tela, se seu APP não estiver com o configChanges configurado (recomendo não utilizá-lo) a Activity será reconstruída e seu Grid tb será, então no algoritmo vc consegue verificar se o device está portrait ou landscape, nesse caso verificando que está em landscape vc cria o Grid para trabalhar com a configuração de 4 colunas, caso em portrait vc cria ele para trabalhar com 3 apenas. Em nenhum dos casos é necessário modificar layouts, somente a inicialização do Grid é que muda. Dê uma olhada nos links abaixo para criar seu script de verificação de orientação de tela. Abraço

http://stackoverflow.com/questions/3674933/find-out-if-android-device-is-portrait-or-landscape-for-normal-usage

http://stackoverflow.com/questions/2795833/check-orientation-on-android-phone
Responder
Ruan Alves Ferreira de Bessa (1) (0)
23/04/2015
Amigo vlw mesmo! mais descobri que o erro era no manifest, pois é um sistema já existênte cheio de erros. Quando viro minha GRIDVIEW para vertical, os valores dos icones das posição mudam, vc sabe me dizer o que pode ser? .... cara to adorando suas video aulas, são de grande ajuda ... vlw mesmo
Responder
Vinícius Thiengo (1) (0)
24/04/2015
Ruan, quando diz "os valores dos icones das posição mudam" vc diz que muda o valor / caminho de acesso aos ícones, ou seja, outros são abertos ou nenhum? Não vi isso ainda, o problema pode ser mesmo o que lhe informei no comentário anterior sobre o configChanges. Veja se nas Activities tag em seu AndroidManifest não há alguma com o atributo configChanges. Abraço
Responder
Guilherme (1) (0)
26/03/2015
Fala Thiengo blz?
Me tira uma duvida por favor:
Carrego uma Gridview com dados do banco porem ao clicar em algum item da linha eu preciso pegar o ID que fica sempre na coluna 1 como faço isso?
Responder
Vinícius Thiengo (0) (0)
26/03/2015
Fala Guilherme, blz sim.
No caso o que pode fazer é o seguinte, carregando os dados do bd vc os coloca em uma lista do tipo da classe dos itens que estão no bd e nessa classe terá o campo do id. Essa lista será associada ao adapter que será vinculado ao GridView, assim vc coloca o listener de clique no GridView, nesse listener é informado como parâmetro de entrada a posição do item que foi clicado, logo é a mesma posição do item na lista que foi associada ao adapter, trabalhando com essa lista sendo uma variável de instancia na classe que tem o GridView, vc pode acessar o item na posição clicada e então dar um getId() para obter o id. Abraço
Responder
Ricardo (1) (0)
09/03/2015
Thiengo blz, Cara eu queria fazer uma forma que conforme captura imagem ou pega da galeria isso ja fiz ai retorno em bitmap ,queria ir adicionando no grid tem alguma ideia de como fazer?
Responder
Vinícius Thiengo (0) (0)
10/03/2015
Fala Ricardo, blz sim.
Veja se é isso que está querendo dizer (http://www.thiengo.com.br/imageloader-com-a-lib-volley-no-android ou http://www.thiengo.com.br/carregamento-e-cache-de-imagem-com-universal-image-loader-no-android ), carregamento de imagem no grid ao invés de lista em seu caso. Abraço
Responder
daviola.menezes (0) (0)
02/02/2015
Ou ? quest?o de gosto e Layouts msm?
Responder
Vinícius Thiengo (0) (0)
03/02/2015
Fala Daviola, blz?
Na verdade trato como questão de projeto, quando desenvolvendo mobile temos de pensar o tempo todo em otimização devido aos poucos recursos disponíveis, se utilizar o GridLayout se encaixa no design desenvolvido em projeto para a APP e tb é a melhor opção quanto a otimização, então é ele que devemos utilizar. Hj em Android temos de ficar atentos com o problema de Memory Leak, que é quando utulizamos mtas entidades em nossa APP, digo, mtos objetos (incluindo cada view do layout) e vazamos o limite permitido de dados na memória... por isso temos de ter cuidado no momento de escolher as views do layout. Abraço
Responder
daviola.menezes (0) (0)
02/02/2015
Eae Vinicius ? recomendado pra mostrar um grid de fotos com aquele checkbox pra selecionar? Ou ? quest
Responder
Vinícius Thiengo (0) (0)
03/02/2015
Tb, vc pode mudar a cor do box ao invés de ter mais uma view (o checkbox) somente para mostrar que a imagem foi selecionada. Abraço
Responder
02/08/2014
Muito Obrigado, agora sou um "FAN" do seu site.
=)
Responder