DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Mobile magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Artigo WebMobile 27 - Layouts no Android

Construindo interfaces gráficas utilizando XML na plataforma Google






Android
Layouts no Android
Construindo interfaces gráficas utilizando XML na plataforma Google

Um dos grandes diferenciais do Android é a forma como construímos a interface de usuário. No Android ela é montada usando dois tipos de objetos: View e ViewGroup.
A classe View representa os componentes básicos para a criação da UI. View é a classe base para os widgets, que são objetos usados na criação de componentes interativos com o usuário, como botões, caixa de texto, etc. A classe ViewGroup é um tipo especial de view que pode conter outras views (filhos). ViewGroup é a classe base para os layouts, que possibilitam uma série de arquiteturas para a UI, como tabular, linear, etc.
A UI será definida, então, por uma hierarquia de Views e ViewGroups, semelhante a uma árvore (Figura 1).


 
Figura 1. Hierarquia de Views e ViewGroups

Então, ao definirmos a UI, podemos usar os widgets e layouts disponibilizados pela própria plataforma Android, que resolvem uma série de situações comuns em layouts, como a criação de tabelas, botões, caixas de texto, etc. Porém, nem sempre os widgets e layouts Android são suficientes para a criação de uma UI. Para esses casos, podemos criar views customizadas para atender uma situação específica, como a criação de uma barra de volume na tela.
É importante salientar que cada hierarquia em árvore representa uma tela da aplicação. A forma que definimos essa tela na aplicação é através do método setContentView(), que recebe o nó raiz da árvore. Como cada tela possui apenas uma árvore, não é permitido ter dois elementos raízes na mesma tela.
A maneira mais comum de definir uma UI em Android é através de arquivos XML, entretanto, também é possível definir uma UI diretamente no código Java.
A próxima seção explicará com mais detalhes a criação de uma UI em Android, mostrar como devem ser feitos os arquivos XML e como estes devem ser referenciados no código.
Layout
No Android, o layout é uma extensão da classe ViewGroup, ele irá definir a estrutura da tela e controlar os elementos que estarão visíveis para o usuário.  O layout serve como estrutura de uma determinada atividade, ou seja, define a organização e as propriedades da tela, e o modo como os elementos irão se relacionar. Existem duas maneiras para declarar seu layout em Android:
•    Declarar os elementos da UI em XML;
•    Instanciar os elementos da UI em runtime.

O Android fornece um vocabulário em XML correspondente às classes Views e suas subclasses, ou seja, existe uma estrutura de nomes de classes e métodos que irão fazer a correspondência do código XML com suas respectivas classes e métodos.
Os objetos do tipo View e Viewgroup também podem ser criados pela aplicação em tempo runtime, essa opção é normalmente usada quando queremos modificar dinamicamente o conteúdo de nosso layout. Quando desenvolvemos em Android podemos escolher uma entre essas duas maneiras ou ambas para criarmos a UI da aplicação.
A vantagem de declarar a UI em XML é a possibilidade de poder separar a descrição da interface do código da aplicação, ou seja, podemos realizar modificações na UI sem nos preocuparmos com alterações no código fonte e com recompilação. A separação da UI em XML também permite uma melhor visualização da estrutura de layout, tornando mais fácil localizar e resolver possíveis problemas.

Criando um arquivo de layout em XML
Cada arquivo de layout deve conter apenas um elemento raiz, e a partir dele a hierarquia em árvore é montada com a adição de widgets e objetos de layouts. Após ser criado, o arquivo de layout deve ser salvo com a extensão .xml na pasta res/layout que está presente em todos os projetos em Android. Apenas nessa pasta é que o compilador irá reconhecer os arquivos XML como sendo arquivos de layout, e assim tratá-los da forma adequada.
Após a compilação, os arquivos de layout devem ser carregados na aplicação, ou seja, a interface de usuário deve ser associada à atividade. Isso é feito através do método setContentView(), passando a referência do seu arquivo XML  no formato R.layout.nome_do_arquivo.
Objetos de Layout comuns
Como dito anteriormente, as UIs em Android são compostas por diversos layouts. Essa seção irá descrever as características de alguns dos principais layouts existentes, e mostrar pequenas aplicações que irão ajudar a entender melhor o funcionamento desses layouts.
A criação dos arquivos XML é muito simples. Os objetos adicionados na tela são representados por que podem conter objetos do tipo View e ViewGroup. Essas tags ao serem aninhadas formam a hierarquia do nosso layout.
Todas as tags que serão usadas nos exemplos são apresentadas na Tabela 1.

Objeto    Tags    Descrição
FrameLayout        Cria um layout do tipo FrameLayout.
LinearLayout         Cria um layout do tipo LinearLayout.
TableLayout        Cria um layout do tipo TableLayout.
AbsoluteLayout        Cria um layout do tipo AbsoluteLayout.
RelativeLayout        Cria um layout do tipo RelativeLayout.
EditText        Exibe uma caixa para entrada de texto.
Button    


ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Mobile magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    1 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Ricardo Azevedo E Sá
Na pagina 16 há um trecho assim..
O Linearlayout também permite a associação de pesos aos seus filhos, que simbolizam a proporção de espaço que eles devem ter na tela. Se nenhum valor for explicitado, todos os filhos terão o peso padrão (0), significando que cada filho deve ocupar apenas o espaço necessário na tela. Ao associarmos um peso a um filho, ele irá se expandir no restante da tela da seguinte forma: se atribuirmos um peso 3, esse filho irá ocupar um terço da tela, se atribuirmos um peso 5, um quinto da tela e assim sucessivamente. Se quisermos distribuir igualmente o espaço, atribuímos o peso 1 a todos os filhos.
 
Acho que há um equívoco, trabalho com Android na Samsung, e quando li fiquei na dúvida.. Ao questionar meus colegas de profissão, eles me confirmaram que o peso do LinearLayout é igual a média ponderada.
Exemplo:
widget_A peso 1
widget_B peso 2
widget_C peso 1
o widget B vai ocupar 50% da tela
 
Outro exemplo..
widget_A peso 1
widget_B peso 2
widget B vai ocupar 2 terços.
 
Outro..
widget_A peso 1
widget_B peso 3
Widget B vai ocupar 3 quartos (que é mais do que 2 terços)
 
Quanto maior o peso maior o espaco... ou seja 5 = quintuplo ... que é diferente de "1 quinto". Isso depende da soma dos pesos no layout.
 
Espero ter colaborado..
 
Att,
Ricardo Azevedo e Sá


em 2/2/2010 15:04 - Responder

 



Você está em:  canal mobile
+mobile:   artigos | vídeos |  cursos | 
Publicidade
Autor
Equipe Devmedia

Noticias/Dicas/Artigos publicados.




Space do autor
Estatísticas
Favorito:
7 vez(es)
Comentários:
1
Feedback:
Utilidade:
0   0
Serviços
 Inclua um comentário
 Adicionar aos Favoritos
 Marcar como lido/assistido
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03