Ver mensagens sem resposta | Ver tópicos ativos Hoje é 20 Mai 2013, 11:37



Este tópico está trancado, você não pode editar mensagens ou enviar respostas.  [ 11 Mensagens ] 
 [RESOLVIDO] Tamanho de uma view 
Autor Mensagem
Android application
Android application

Data de registro: 21 Mar 2011, 09:04
Mensagens: 56
Mensagem [RESOLVIDO] Tamanho de uma view
Pessoal tenho o seguinte metodo
public void inicializacaoObjetos()
    {
        layout = (LinearLayout) findViewById(R.categoria.layout);
        lv = (ListView) findViewById(R.categoria.listacategoria);
        int width = layout.getWidth();
        int height = lv.getHeight();
        Log.i("TESTE", ""+width +", "+height);
        }


e no log imprime: 0,0

alguém pode me ajudar?


Editado pela última vez por lucastassis em 04 Set 2012, 20:17, num total de 1 vezes



30 Ago 2012, 22:18
Perfil
What is AVD?
What is AVD?

Data de registro: 17 Jul 2012, 11:48
Mensagens: 18
Mensagem Re: Tamanho de uma view
E ai lucastassis,

Rapaz vc ja debugou para ver qual é o valor das variaveis?

Outra coisa, vc ta passando int para o log. O certo não seria assim?


 Log.i("TESTE", String.valueOf(width) +", "+String.valueOf(height));
 


31 Ago 2012, 11:48
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 29 Mar 2012, 10:00
Mensagens: 171
Mensagem Re: Tamanho de uma view
Tenta usar isso vê se te ajuda
    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        // TODO Auto-generated method stub
        super.onWindowFocusChanged(hasFocus);

        Log.i("Log teste", "Height: " + String.valueOf(lv.getHeight()) + "Width: " + String.valueOf(layout.getWidth()));

    }


31 Ago 2012, 12:41
Perfil
Android application
Android application

Data de registro: 21 Mar 2011, 09:04
Mensagens: 56
Mensagem Re: Tamanho de uma view
maycoll escreveu:
E ai lucastassis,

Rapaz vc ja debugou para ver qual é o valor das variaveis?

Outra coisa, vc ta passando int para o log. O certo não seria assim?


 Log.i("TESTE", String.valueOf(width) +", "+String.valueOf(height));
 



cara eu estou concatenando com uma string vazia ""+...


31 Ago 2012, 17:51
Perfil
Android application
Android application

Data de registro: 21 Mar 2011, 09:04
Mensagens: 56
Mensagem Re: Tamanho de uma view
Goncalves1 escreveu:
Tenta usar isso vê se te ajuda
    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        // TODO Auto-generated method stub
        super.onWindowFocusChanged(hasFocus);

        Log.i("Log teste", "Height: " + String.valueOf(lv.getHeight()) + "Width: " + String.valueOf(layout.getWidth()));

    }



esse funcionou!! mas vc poderia me explicar o que houve que antes não rodava??


31 Ago 2012, 18:01
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 01 Jun 2012, 12:50
Mensagens: 157
Mensagem Re: Tamanho de uma view
Bom, você precisa entender o conceito do método "onWindowFocusChanged".
Esse método é chamado quando uma janela contendo views ganha ou perde foco.
Basicamente esse método é chamado quando sua janela carrega todos os views e a "construção" da mesma é concluída, assim passas a ter dimensões definidas.
O que poder ter acontecido é que antes de concluir a construção da nova janela, você chamou a função "inicializacaoObjetos()", o que retornou "0".
O objeto existe mas ainda não tem a suas propriedades definidas, enquanto o método "onWindowFocusChanged" só é executado após tudo está definido.
Bom, tentei explicar da maneira mais simples, mas as vezes simples demais acabar por levar a conclusões erradas, por isso vamos ver se mais alguém explica.

Cumprimentos.

_________________
Happy Day - Nunca mais se esqueça das datas especiais, envia sms automaticamente no dia da comemoração!
https://play.google.com/store/apps/details?id=br.com.happydayfree

Caso tenha encontrado sua solução, coloque como [RESOLVIDO] para facilitar a dúvida de outros.
http://www.portalandroid.org- Tudo sobre o Android.

JESUS VOLTARÁ! Não sabe quem é? Procure, ainda há tempo.


31 Ago 2012, 23:46
Perfil
Android application
Android application

Data de registro: 21 Mar 2011, 09:04
Mensagens: 56
Mensagem Re: Tamanho de uma view
filipe_moraes escreveu:
Bom, você precisa entender o conceito do método "onWindowFocusChanged".
Esse método é chamado quando uma janela contendo views ganha ou perde foco.
Basicamente esse método é chamado quando sua janela carrega todos os views e a "construção" da mesma é concluída, assim passas a ter dimensões definidas.
O que poder ter acontecido é que antes de concluir a construção da nova janela, você chamou a função "inicializacaoObjetos()", o que retornou "0".
O objeto existe mas ainda não tem a suas propriedades definidas, enquanto o método "onWindowFocusChanged" só é executado após tudo está definido.
Bom, tentei explicar da maneira mais simples, mas as vezes simples demais acabar por levar a conclusões erradas, por isso vamos ver se mais alguém explica.

Cumprimentos.


cara entendi, mas acontece que minha função inicializaçãoObjetos() é a primeira instrução realizada no onCreate() e por isso achei que já era possível pegar a largura e altura nesse momento


01 Set 2012, 01:03
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 01 Jun 2012, 12:50
Mensagens: 157
Mensagem Re: Tamanho de uma view
No método "onCreate" certamente você tem essa linha:

setContentView(R.layout.seu_xml);
 


Aqui está sendo gerado todos os seus objetos que foram definidos no xml.
Se logo a seguir tentar obter a altura e largura de um objeto, o retorno será "0".

_________________
Happy Day - Nunca mais se esqueça das datas especiais, envia sms automaticamente no dia da comemoração!
https://play.google.com/store/apps/details?id=br.com.happydayfree

Caso tenha encontrado sua solução, coloque como [RESOLVIDO] para facilitar a dúvida de outros.
http://www.portalandroid.org- Tudo sobre o Android.

JESUS VOLTARÁ! Não sabe quem é? Procure, ainda há tempo.


01 Set 2012, 15:31
Perfil
Android application
Android application

Data de registro: 21 Mar 2011, 09:04
Mensagens: 56
Mensagem Re: Tamanho de uma view
filipe_moraes escreveu:
No método "onCreate" certamente você tem essa linha:

setContentView(R.layout.seu_xml);
 


Aqui está sendo gerado todos os seus objetos que foram definidos no xml.
Se logo a seguir tentar obter a altura e largura de um objeto, o retorno será "0".


cara então complicou aqui pra mim...
pois até onde sei eu só posso pegar os atributos depois q o objetos são criados, ou seja, primeiro eu crio no setContentView, depois uso o findViewById para referenciar a view, pq não consigo ler os atributos?


02 Set 2012, 01:24
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 01 Jun 2012, 12:50
Mensagens: 157
Mensagem Re: Tamanho de uma view
lucastassis, tecnicamente os objetos estão sendo construídos no método "onCreate".
Até consegue fazer referência a um determinado objeto, mas a sua altura/largura depende do restante do grupo.
Imagina que você tem um relativelayout com uma altura igual ao seu conteúdo, chegamos a conclusão que só teremos a altura desse objecto quando todo o seu conteúdo estiver definido.
Um exemplo bem careta que veio a cabeça, rsrs, imagina colocar um balão (seu xml layout) na boca de um inflador (setContentView), o balão existe mas sua largura e altura é indefinida, vai depender da quantidade de ar que for posto lá dentro. No fim, conseguimos ter as dimensões exatas do balão.
O método "onWindowFocusChanged" é a retirada do balão da boca do inflador, quando a criançada fica feliz! rs!

Bom, exemplo bem bobo mas da uma ideia do que se passa.
Outra maneira é você usar o "ViewTreeObserver".
Veja esse exemplo (o 2º posta na página): http://stackoverflow.com/questions/4142 ... 90#4406090

_________________
Happy Day - Nunca mais se esqueça das datas especiais, envia sms automaticamente no dia da comemoração!
https://play.google.com/store/apps/details?id=br.com.happydayfree

Caso tenha encontrado sua solução, coloque como [RESOLVIDO] para facilitar a dúvida de outros.
http://www.portalandroid.org- Tudo sobre o Android.

JESUS VOLTARÁ! Não sabe quem é? Procure, ainda há tempo.


02 Set 2012, 14:48
Perfil
Android application
Android application

Data de registro: 21 Mar 2011, 09:04
Mensagens: 56
Mensagem Re: Tamanho de uma view
hummm
agora entendi!!

cara vc tem um msn q pode me passar pra me ajudar? esse programa é meu trabalho de conclusão de curso e ainda me perco em muita coisa...


02 Set 2012, 19:29
Perfil
Mostrar mensagens anteriores:  Organizar por  
Este tópico está trancado, você não pode editar mensagens ou enviar respostas.   [ 11 Mensagens ] 

Quem está online

Usuários vendo este fórum: (_FM_), Abraao, Adeja, adenilsonsena, adolfo, Adriano, Alan Unger, Alessandro Tavares, Alexandre Castro, alexandrepom, alineri, allone, Andre Brito, andreleitao, andrewort, Antonio Carlos, AT-AT, austonrd, Berbert, BOMBER27, bozzano, brcamp, brenno, Bruto_JPO, caciara, caiodemarco, Caique, car.demarco, Carlos Almeida, Carmizini, cassiano, cehills, cenatech, cesao, cezaraf, chunga, cleberkct, Cleiton, Damiani Oliveira, Darth Plagueis, Darth Sidious, Diego, diemesleno, difrene, digiwise, Dirceu W. C. Conte, dnakamashi, dramos, ederson_4, edson dias de gusmao, Eduardo, Eduardo - Brasil, fabrizior, fcoroa, felipedornelas, ffabiano, Filipe larizzatti, frederico.affini, Gabriel Teófilo, geovanebg, Gnomo, gutodias, hebert, henrique.garcia, Igor_M, igor_meneguzzo, inesfg, iuri_freire, JackBlackJack, jacksaum, Jango Fett, jaydson, jhonguitar, jorgecardoso, jrsilva, Juliobcosta, kennedyximenes, klausenner, kusanaguy, lalaine, Lelinho, lhdiassilva, Liviosousa, lkunta, Lord, LordElfo, LucasNascimento, luciocamilo, lufreitas, luiz.lago, luizneto79, Machado000, marceloaragao, marcelochiquinho, Marini, martins, Mayron Cimardi, mmfsndroid, MpassosT, mravel, nandokanarski, nandopierre, nardosnt, nglaubervasc, nirvana, oliveiramc, onaiggac, paint-horse, paulovaz, pchofard, phobos, piagg, pilon, Plenosoft, polonia, Qui-Gon Jinn, ramonsa, raninhofernandes, raulcca, Renan, rguadagnini, rixargolo, Roberto, roberto caceres, robsonrg, rodrigoinnova, romualdo, romuloff, Rubens Prates, Samantha, scattonevi, shadow, SidneiCP, SirBagda, snonca, Telekom [Bot], thiago20, thienne, Tiago Sousa Roch, tiasousa, VILESOFT, vilmartr, waideman, wilson.slima, WiseNut, Yoda, Yuri, zenden1503 e 4 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:

© 2007 - 2013 Portal Android - Comunidade de Desenvolvedores da Plataforma Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi