|
Página 1 de 1
|
[ 11 Mensagens ] |
|
[RESOLVIDO] Tamanho de uma view
| Autor |
Mensagem |
|
lucastassis
Android application
Data de registro: 21 Mar 2011, 09:04 Mensagens: 56
|
 [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,0algué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 |
|
 |
|
maycoll
What is AVD?
Data de registro: 17 Jul 2012, 11:48 Mensagens: 18
|
 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 |
|
 |
|
Goncalves1
Anatomy of an App
Data de registro: 29 Mar 2012, 10:00 Mensagens: 171
|
 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 |
|
 |
|
lucastassis
Android application
Data de registro: 21 Mar 2011, 09:04 Mensagens: 56
|
 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 |
|
 |
|
lucastassis
Android application
Data de registro: 21 Mar 2011, 09:04 Mensagens: 56
|
 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 |
|
 |
|
filipe_moraes
Anatomy of an App
Data de registro: 01 Jun 2012, 12:50 Mensagens: 157
|
 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.happydayfreeCaso 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 |
|
 |
|
lucastassis
Android application
Data de registro: 21 Mar 2011, 09:04 Mensagens: 56
|
 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 |
|
 |
|
filipe_moraes
Anatomy of an App
Data de registro: 01 Jun 2012, 12:50 Mensagens: 157
|
 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.happydayfreeCaso 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 |
|
 |
|
lucastassis
Android application
Data de registro: 21 Mar 2011, 09:04 Mensagens: 56
|
 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 |
|
 |
|
filipe_moraes
Anatomy of an App
Data de registro: 01 Jun 2012, 12:50 Mensagens: 157
|
 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.happydayfreeCaso 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 |
|
 |
|
lucastassis
Android application
Data de registro: 21 Mar 2011, 09:04 Mensagens: 56
|
 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 |
|
|
|
Página 1 de 1
|
[ 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
|
|