Android - Design de IU
Neste capítulo, veremos os diferentes componentes da IU da tela do Android. Este capítulo também cobre as dicas para fazer um design de IU melhor e também explica como projetar uma IU.
Componentes da tela da IU
Uma interface de usuário típica de um aplicativo Android consiste em uma barra de ação e na área de conteúdo do aplicativo.
- Barra de ação principal
- Ver controle
- Área de conteudo
- Barra de ação dividida
Esses componentes também são mostrados na imagem abaixo -
Compreendendo os componentes da tela
A unidade básica do aplicativo Android é a atividade. Uma IU é definida em um arquivo xml. Durante a compilação, cada elemento no XML é compilado em uma classe GUI Android equivalente com atributos representados por métodos.
Exibir e Exibir grupos
Uma atividade consiste em visualizações. Uma visualização é apenas um widget que aparece na tela. Pode ser botão, etc. Uma ou mais visualizações podem ser agrupadas em uma GroupView. Exemplo de ViewGroup inclui layouts.
Tipos de layout
Existem muitos tipos de layout. Alguns dos quais estão listados abaixo -
- Layout Linear
- Layout absoluto
- Layout da mesa
- Layout da moldura
- esquema relativo
Layout Linear
O layout linear é dividido em layout horizontal e vertical. Isso significa que ele pode organizar visualizações em uma única coluna ou em uma única linha. Aqui está o código do layout linear (vertical) que inclui uma visualização de texto.
<?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:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”@string/hello” />
</LinearLayout>
AbsoluteLayout
O AbsoluteLayout permite que você especifique a localização exata de seus filhos. Pode ser declarado assim.
<AbsoluteLayout
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
xmlns:android=”http://schemas.android.com/apk/res/android” >
<Button
android:layout_width=”188dp”
android:layout_height=”wrap_content”
android:text=”Button”
android:layout_x=”126px”
android:layout_y=”361px” />
</AbsoluteLayout>
TableLayout
O TableLayout agrupa visualizações em linhas e colunas. Pode ser declarado assim.
<TableLayout
xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_height=”fill_parent”
android:layout_width=”fill_parent” >
<TableRow>
<TextView
android:text=”User Name:”
android:width =”120dp”
/>
<EditText
android:id=”@+id/txtUserName”
android:width=”200dp” />
</TableRow>
</TableLayout>
Esquema relativo
O RelativeLayout permite que você especifique como as visualizações filhas são posicionadas em relação umas às outras. Ele pode ser declarado assim.
<RelativeLayout
android:id=”@+id/RLayout”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
xmlns:android=”http://schemas.android.com/apk/res/android” >
</RelativeLayout>
FrameLayout
O FrameLayout é um espaço reservado na tela que você pode usar para exibir uma única visualização. Pode ser declarado assim.
<?xml version=”1.0” encoding=”utf-8”?>
<FrameLayout
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_alignLeft=”@+id/lblComments”
android:layout_below=”@+id/lblComments”
android:layout_centerHorizontal=”true” >
<ImageView
android:src = “@drawable/droid”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” />
</FrameLayout>
Além desses atributos, existem outros atributos que são comuns a todas as visualizações e grupos de visualizações. Eles estão listados abaixo -
Sr. Não | Ver & descrição |
---|---|
1 |
layout_width Especifica a largura do View ou ViewGroup |
2 |
layout_height Especifica a altura do View ou ViewGroup |
3 |
layout_marginTop Especifica o espaço extra na parte superior do View ou ViewGroup |
4 |
layout_marginBottom Especifica espaço extra na parte inferior do View ou ViewGroup |
5 |
layout_marginLeft Especifica o espaço extra no lado esquerdo do View ou ViewGroup |
6 |
layout_marginRight Especifica o espaço extra no lado direito do View ou ViewGroup |
7 |
layout_gravity Especifica como as vistas filhas são posicionadas |
8 |
layout_weight Especifica quanto espaço extra no layout deve ser alocado para a Visualização |
Unidades de medida
Ao especificar o tamanho de um elemento em uma IU do Android, você deve se lembrar das seguintes unidades de medida.
Sr. Não | Unidade e descrição |
---|---|
1 |
dp Pixel independente de densidade. 1 dp é equivalente a um pixel em uma tela de 160 dpi. |
2 |
sp Pixel independente de escala. Isso é semelhante ao dp e é recomendado para especificar tamanhos de fonte |
3 |
pt Ponto. Um ponto é definido como 1/72 de polegada, com base no tamanho físico da tela. |
4 |
px Pixel. Corresponde a pixels reais na tela |
Densidades de tela
Sr. Não | Densidade e DPI |
---|---|
1 |
Low density (ldpi) 120 dpi |
2 |
Medium density (mdpi) 160 dpi |
3 |
High density (hdpi) 240 dpi |
4 |
Extra High density (xhdpi) 320 dpi |
Otimizando layouts
Aqui estão algumas das diretrizes para a criação de layouts eficientes.
- Evite aninhamento desnecessário
- Evite usar muitas visualizações
- Evite aninhamento profundo