Caso prefira, você encontrará todo esse material, em inglês, no site do Developer Android. A tradução e comentários dos materiais eu faço livremente para ajudar a comunidade que fala português.

terça-feira, 22 de fevereiro de 2011

Interface de usuário

Em uma aplicação Android, a interface do usuário é criada usando objetos View e ViewGroup. Existem muitos tipos de views e ViewsGroups, cada um deles descendente da classe View. Todas os controles de interface são descendentes de View, inclusive as classes de Layout. Só que as classes de Layout são extensões das ViewGroups.

Para quem já programa e quer entender o que são views, fique com o seguinte conceito em mente: as views estão para a programação em Android o que os forms são para outras linguagens. A maneira como os componentes são inseridos dentro da view é dado por um tipo de Layout .Cada view só poderá receber um tipo de Layout.

Os objetos View são as unidades básicas de interface de usuário na plataforma Android. A classe View serve como base para todas as subclasses, chamadas widgets, que implementam interface completa e funcional, como campos texto ou botões. As classes ViewGroup servem como base para as subclasses chamadas Layouts, que oferecem diferentes tipos de arquitetura de layout, como linear, tabular ou relativa.

Um objeto View é uma estrutura de dados cujas propriedades guardam os parâmetros de layout e conteúdo para uma área retangular da tela. Um objeto View gerencia suas medidas, layout, como é desenhado na tela, a mudança de foco, rolagem na tela e interações por gesto ou botão para a área onde ele reside. Como um objeto de uma interface de usuário, uma View é também um ponto de interação com o usuário e receber os eventos dessa interação e responde a eles.

Hierarquia das Views

Na plataforma Android, você define a interface da atividade usando uma hierarquia de View e ViewGroup, como mostrado no diagrama abaixo. A árvore de hierarquia pode ser simples ou complexa na medida que você necessita e você pode construir uma série de widgets e layouts predefinidos ou views customizadas.






Para anexar uma árvore hierárquica, como a que você vê acima, por exemplo, para ser renderizada na tela, sua atividade deve chamar o método setContentView() e passar uma referência para o nó raiz do objeto. O sistema Android recebe a referência e a usa para validar, medir e desenhar a árvore. O nó raiz da hierarquia faz uma requisição para que seus nós filhos se desenhem na tela. O nó filho ainda pode requisitar o tamanho e posicionamento do nó pai, mas o nó pai tem a decisão final do quão grande será cada filho. O Android desenha os elementos na ordem que eles foram feitos, mas sempre de cima para baixo, começando pelo nó pai e depois indo para os nós filhos.

E o que são os layouts?

Gerenciadores de Layout (ou Layout Managers) são extensões de uma classe ViewGroup usados para posicionar os controles filhos na interface que se quer criar. Você poderá colocar layouts dentro de outros layouts, mas isso não é recomendado. A sua interface, quando pensando em uso em smartphones, deverá ser a mais simples possível.

Algumas das mais versáteis classes de layout são:

  • FrameLayout - ViewGroup que permite inserir elementos na tela e eles vão sendo agrupados sempre alinhados no canto superior esquerdo da tela.
  • LinearLayout - ViewGroup que permite inserir elementos verticalmente ou horizontalmente. 
  • RelativeLayout - ViewGroup que permite que seus elementos filhos fiquem em posição relativa ao pai ou elementos irmãos.
  • TableLayout - ViewGroup que guarda os elementos internos em colunas e linhas, bem como em uma tabela HTML.

E o que inserir dentro desses layouts?

Os widgets. É isso que você deverá inserir dentro dos layouts. Os widgets são os elementos que vão criar a interface para que o usuário possa interagir com o seu aplicativo. Veja que há widgets que são os elementos de interface e os widgets que são os tipos de aplicativos que rodam na tela do smartphone para o qual se programa. São duas coisas diferentes.

Alguns controles familiares

  • TextView - Um campo de texto label, que pode ser multilinha, que possui formação de string e quebra automatica de linha. Não editável, apenas recebe informações que serão mostradas na tela.
  • EditText - Um campo editável, como um textbox. Aceita entrada de dados, multilinha e quebra de linha.
  • Spinner - É o dropbox ou combobox. O pessoal da Android resolveu mudar o nome. Mas o spinner é basicamente a mesma coisa. Ele têm esse nome pq na tela ele se assemelha com um cilindro que gira para que possa ser escolhida a opção.
  • Button - É o botão, que a gente já conhece tão bem.
  • CheckBox - Um botão que tem dois estados: marcado e não marcado.
  • RadioButton - Um botão que tem dois estados mas que vêm em grupo - somente uma das opções poderá ser marcada.
Existem ainda inúmeros outros tipos de controle, descritos aqui.

E como fazer a inserção desses widgets se eu não os conheço direito?

Se você estiver usando o plugin ADT, terá uma forma melhor de se desenhar os layout: visualmente. Para tal, abra o Eclipse e aponte para um projeto simples que você tenha criado. Basta abrir o arquivo main.xml que fica em res > layout.

Após isso, basta clicar em graphical layout e você terá uma lista dos componentes que poderão ser inseridos na tela.



No próximo post continuo a explicar sobre a interface de usuário.

*com conteúdo traduzido livremente do site do Android

0 comentários:

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
Related Posts Plugin for WordPress, Blogger...