Android - Layouts de IU
O bloco de construção básico para a interface do usuário é um Viewobjeto que é criado a partir da classe View e ocupa uma área retangular na tela e é responsável pelo desenho e tratamento dos eventos. View é a classe base para widgets, que são usados para criar componentes de IU interativos como botões, campos de texto, etc.
o ViewGroup é uma subclasse de View e fornece um recipiente invisível que contém outras visualizações ou outros ViewGroups e definem suas propriedades de layout.
No terceiro nível, temos layouts diferentes que são subclasses da classe ViewGroup e um layout típico define a estrutura visual de uma interface de usuário Android e pode ser criado em tempo de execução usando View/ViewGroup objetos ou você pode declarar seu layout usando um arquivo XML simples main_layout.xml que está localizado na pasta res / layout do seu projeto.
Parâmetros de layout
Este tutorial é mais sobre como criar sua GUI com base em layouts definidos em arquivo XML. Um layout pode conter qualquer tipo de widgets, como botões, rótulos, caixas de texto e assim por diante. A seguir está um exemplo simples de arquivo XML com LinearLayout -
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a Button" />
<!-- More GUI components go here -->
</LinearLayout>
Uma vez que seu layout foi criado, você pode carregar o recurso de layout de seu código de aplicativo, em sua implementação de callback Activity.onCreate () como mostrado abaixo -
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
Tipos de layout Android
Existem vários layouts fornecidos pelo Android que você usará em quase todos os aplicativos Android para fornecer uma visão, aparência e comportamento diferentes.
Sr. Não | Layout e descrição |
---|---|
1 | Layout Linear LinearLayout é um grupo de visualização que alinha todos os filhos em uma única direção, vertical ou horizontalmente. |
2 | esquema relativo RelativeLayout é um grupo de visualizações que exibe visualizações filhas em posições relativas. |
3 | Layout da mesa TableLayout é uma exibição que agrupa as exibições em linhas e colunas. |
4 | Layout absoluto AbsoluteLayout permite que você especifique a localização exata de seus filhos. |
5 | Layout da moldura O FrameLayout é um espaço reservado na tela que você pode usar para exibir uma única visualização. |
6 | Exibição de lista ListView é um grupo de visualização que exibe uma lista de itens roláveis. |
7 | Visualização em grade GridView é um ViewGroup que exibe itens em uma grade bidimensional com rolagem. |
Atributos de layout
Cada layout possui um conjunto de atributos que definem as propriedades visuais desse layout. Existem alguns atributos comuns entre todos os layouts e há outros atributos específicos desse layout. A seguir estão os atributos comuns que serão aplicados a todos os layouts:
Sr. Não | Atributo e descrição |
---|---|
1 | android:id Este é o ID que identifica exclusivamente a vista. |
2 | android:layout_width Esta é a largura do layout. |
3 | android:layout_height Esta é a altura do layout |
4 | android:layout_marginTop Este é o espaço extra na parte superior do layout. |
5 | android:layout_marginBottom Este é o espaço extra na parte inferior do layout. |
6 | android:layout_marginLeft Este é o espaço extra no lado esquerdo do layout. |
7 | android:layout_marginRight Este é o espaço extra no lado direito do layout. |
8 | android:layout_gravity Isso especifica como as visualizações filhas são posicionadas. |
9 | android:layout_weight Isso especifica quanto do espaço extra no layout deve ser alocado para a Visualização. |
10 | android:layout_x Isso especifica a coordenada x do layout. |
11 | android:layout_y Isso especifica a coordenada y do layout. |
12 | android:layout_width Esta é a largura do layout. |
13 | android:paddingLeft Este é o preenchimento esquerdo do layout. |
14 | android:paddingRight Este é o preenchimento correto para o layout. |
15 | android:paddingTop Este é o preenchimento superior preenchido para o layout. |
16 | android:paddingBottom Este é o preenchimento inferior preenchido para o layout. |
Aqui, largura e altura são as dimensões do layout / visualização que podem ser especificadas em termos de dp (Pixels independentes de densidade), sp (Pixels independentes de escala), pt (pontos que são 1/72 de polegada), px ( Pixels), mm (milímetros) e finalmente em (polegadas).
Você pode especificar a largura e a altura com medidas exatas, mas com mais frequência, você usará uma dessas constantes para definir a largura ou altura -
android:layout_width=wrap_content diz à sua visualização para se dimensionar para as dimensões exigidas por seu conteúdo.
android:layout_width=fill_parent diz que sua visualização se torna tão grande quanto sua visualização pai.
O atributo gravidade desempenha um papel importante no posicionamento do objeto de visualização e pode assumir um ou mais (separados por '|') dos seguintes valores constantes.
Constante | Valor | Descrição |
---|---|---|
topo | 0x30 | Empurre o objeto para o topo de seu contêiner, sem alterar seu tamanho. |
inferior | 0x50 | Empurre o objeto para o fundo do recipiente, sem alterar seu tamanho. |
esquerda | 0x03 | Empurre o objeto para a esquerda de seu contêiner, sem alterar seu tamanho. |
direito | 0x05 | Empurre o objeto à direita de seu contêiner, sem alterar seu tamanho. |
center_vertical | 0x10 | Coloque o objeto no centro vertical de seu contêiner, sem alterar seu tamanho. |
fill_vertical | 0x70 | Aumente o tamanho vertical do objeto, se necessário, para que ele preencha completamente seu contêiner. |
center_horizontal | 0x01 | Coloque o objeto no centro horizontal de seu contêiner, sem alterar seu tamanho. |
fill_horizontal | 0x07 | Aumente o tamanho horizontal do objeto, se necessário, para que ele preencha completamente seu recipiente. |
Centro | 0x11 | Coloque o objeto no centro de seu contêiner nos eixos vertical e horizontal, sem alterar seu tamanho. |
preencher | 0x77 | Aumente o tamanho horizontal e vertical do objeto, se necessário, para que ele preencha completamente seu contêiner. |
clip_vertical | 0x80 | Opção adicional que pode ser definida para ter as bordas superior e / ou inferior do filho recortadas nos limites do contêiner. O clipe será baseado na gravidade vertical: uma gravidade superior cortará a borda inferior, uma gravidade inferior cortará a borda superior e nenhuma delas cortará ambas as bordas. |
clip_horizontal | 0x08 | Opção adicional que pode ser definida para ter as bordas esquerda e / ou direita do filho recortadas nos limites de seu contêiner. O clipe será baseado na gravidade horizontal: uma gravidade esquerda cortará a borda direita, uma gravidade direita cortará a borda esquerda e nenhuma delas cortará ambas as bordas. |
começar | 0x00800003 | Empurre o objeto para o início de seu contêiner, sem alterar seu tamanho. |
fim | 0x00800005 | Empurre o objeto até o final do contêiner, sem alterar seu tamanho. |
Ver identificação
Um objeto de visualização pode ter um ID exclusivo atribuído a ele, que identificará a Visualização exclusivamente dentro da árvore. A sintaxe para um ID, dentro de uma tag XML é -
android:id="@+id/my_button"
A seguir está uma breve descrição dos sinais @ e + -
O símbolo de arroba (@) no início da string indica que o analisador XML deve analisar e expandir o resto da string de ID e identificá-la como um recurso de ID.
O símbolo de mais (+) significa que este é um novo nome de recurso que deve ser criado e adicionado aos nossos recursos. Para criar uma instância do objeto de visualização e capturá-lo do layout, use o seguinte -
Button myButton = (Button) findViewById(R.id.my_button);