Upload
tecpower
View
221
Download
0
Embed Size (px)
Citation preview
8/9/2019 2-Interface Gráfica.pdf
1/33
Interface Gráfica
8/9/2019 2-Interface Gráfica.pdf
2/33
Interfaces gráficas Visão geral
Classe View
A classe para componentes visuais
Desenha na tela através do método onDraw(Canvas)
Widgets
Classe
2
8/9/2019 2-Interface Gráfica.pdf
3/33
O que é a View
Classe para componentes visuais
Desenha na tela através do método onDraw(Canvas) Ancestral de todos os componentes visuais de uma
aplicação Android.
Tipos de componentes:Widgets
Gerenciadores de layout
3
8/9/2019 2-Interface Gráfica.pdf
4/33
A classe ViewGroup
A classe ViewGroup é a classe mãe de todos osgerenciadores de layout. Os gerenciadores de layoutsão utilizados para organizar a disposição doscomponentes na tela.
4
8/9/2019 2-Interface Gráfica.pdf
5/33
Como referenciar recursos no XML
Drawable:
android:src="@drawable/nome_drawable"
Identificadores: Definição: android:id="@+id/identificador"
Referência: android:layout_below="@id/identificador"
Strings:
android:text="@string/nome_string"
Cores: Forma direta: android:textColor="#RRGGBB"
Forma indireat: android:textColor="@color/nome_cor"
Estilos:
style="@style/nome_estilo“
5
8/9/2019 2-Interface Gráfica.pdf
6/33
Interfaces gráficas - Layouts Opções para definição do layout
Arquivos XML na pasta /res/layout
Via código da API
FrameLayout layout = new FrameLayout(this);LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);layout.setLayoutParams(params);ImageView imgView = new ImageView(this);params = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);imgView.setLayoutParams(params);imgView.setImageResource(R.drawable.image);layout.addView(imgView);
setContentView(layout);6
8/9/2019 2-Interface Gráfica.pdf
7/33
FrameLayout
Tipo mais comum e simples de layout, utilizado porum componente que precisa preencher a tela inteira.
O componente inserido no FrameLayout seráposicionado no canto esquerdo superior e,dependendo de seu tamanho, ocupará todo o espaçoda tela.
Componentes são organizados em pilha O último componente adicionado aparece na frente
7
8/9/2019 2-Interface Gráfica.pdf
8/33
FrameLayout
8
8/9/2019 2-Interface Gráfica.pdf
9/33
FrameLayout
Atributos
9
8/9/2019 2-Interface Gráfica.pdf
10/33
Exercício - FrameLayout
Crie um projeto chamado LayoutSamples Substitua o conteúdo de main.xml por:
Modifique o layout acima usando outros atributos Adicione mais um ImageView. Dica: é possível usar "bottom|right" em layout_gravity
10
8/9/2019 2-Interface Gráfica.pdf
11/33
LinearLayout
Componentes são organizados lado a lado
Organiza os elementos na vertical ou na horizontal (padrão)
Propriedades orientation : define o fluxo dos elementos na tela pode ser vertica
ou horizontal
layout_heigth e Layout_width: especifica a altura do componentepode receber como entra um número, fill_parent( ocupa o espaçodisponível no elemento pai) e wrap_content ocupa apenas o espaçonecessário na tela
layout_gravity: utilizado para alinhar elementos na tela. Valor(top,botton,left, right, center, center_vertical, center_horizontal
11
8/9/2019 2-Interface Gráfica.pdf
12/33
LinearLayout
12
8/9/2019 2-Interface Gráfica.pdf
13/33
LinearLayout Atributos
Pesos
13
8/9/2019 2-Interface Gráfica.pdf
14/33
Exercício - LinearLayout Adicione o arquivo linearlayout.xml a seguir
Não esqueça de fazer setContentView(R.layout.linearlayout);
14
8/9/2019 2-Interface Gráfica.pdf
15/33
TableLayout
É filho do LinearLayout e pode ser utilizado paraorganizar os componentes em uma tabela, com linhas
e colunas. Organiza componentes em linhas e colunas Cada linha é um TableRow (subclase de LinearLayout) Propriedades
stretchColumns: a coluna ocupa o espaço disponível natela. Utilizado para tabelas com somente uma coluna
shrinkColumns: faz um ajuste na largura da colunaimpedindo que elementos deixem de ser exibidos.
15
8/9/2019 2-Interface Gráfica.pdf
16/33
TableLayout
16
8/9/2019 2-Interface Gráfica.pdf
17/33
TableLayout
Atributos
17
8/9/2019 2-Interface Gráfica.pdf
18/33
Exercício - TableLayout
Adicione outro XML de layout ao projeto (tablelayout.xml)
(continua...)
8/9/2019 2-Interface Gráfica.pdf
19/33
Exercício - TableLayout
19
8/9/2019 2-Interface Gráfica.pdf
20/33
RelativeLayout
Permite posicionar um componente relativo a outro(abaixo, acima ou ao lado de um componente jáexistente).
Componentes precisam ser identificados: android:id="@+id/id_componente"
Propriedades layout_below : Posiciona o elemento abaixo do indicado layout_above : Posiciona o elemento acima do indicado layout_toRightOf : Posiciona o elemento a direita do indicado layout_toLeftOf : Posiciona o elemento a esquerda do indicado
20
8/9/2019 2-Interface Gráfica.pdf
21/33
RelativeLayout
layout_alignParentTop : Alinha ao topo do componenteindicado
layout_alineParentBotton : Alinha abaixo do componenteindicado
layout_marginTop : Utilizado para definir um espaço namargem superior do componente.
layout_marginRight : Utilizado para definir um espaço na
margem direita do componente. layout_marginLeft : Utilizado para definir um espaço na
margem esquerda do componente.
21
R l i L
8/9/2019 2-Interface Gráfica.pdf
22/33
RelativeLayout
22
R l i L
8/9/2019 2-Interface Gráfica.pdf
23/33
RelativeLayout
Atributos
23
E í i R l ti L t
8/9/2019 2-Interface Gráfica.pdf
24/33
Exercício - RelativeLayout Adicione outro XML de layout ao projeto (relativelayout.xml)
24
Ab l t L t
8/9/2019 2-Interface Gráfica.pdf
25/33
Permite controlar posição exata dos componentes
Permite posicionar os componentes, fornecendo ascoordenadas x e y.
Pode gerar péssimos resultados em diferentes telas
Propriedades layout_x : define a posição na horizontal
layout_y: define a posição na vertical
AbsoluteLayout
25
Ab l t L t
8/9/2019 2-Interface Gráfica.pdf
26/33
AbsoluteLayout
26
Ab l t L t
8/9/2019 2-Interface Gráfica.pdf
27/33
AbsoluteLayout
Atributos
27
Dimensões
8/9/2019 2-Interface Gráfica.pdf
28/33
DimensõesDimensão Descrição
px (pixels) pixels reais da tela
in (polegadas) baseado no tamanho físico da telamm (milímetro) baseado no tamanho físico da tela
pt (pontos_ 1 pt = 1/72 in.
dp/dip (Density-Independent Pixels) unidade abstrata baseada nadendidade física da tela. Mantém sempre o mesmo tamanhoreal, independente da tela. Exemplo: 0,5 in = 12.7 mm – 80
dp. Em 16.0 dpi, 80 dp = 80 px, em 240 dpi 80 dp = 120 px.
sp Similar a dp, mas este é o padrão recomendado paratelefones celulares. Por exemplo: layout_width = 10sp.
28
Exercício AbsoluteLayout
8/9/2019 2-Interface Gráfica.pdf
29/33
Exercício - AbsoluteLayout Adicione outro XML de layout ao projeto (absolutelayout.xm
29
Layout composto
8/9/2019 2-Interface Gráfica.pdf
30/33
Layout composto
Observe que layouts podem ser aninhados (colocadosdentro de outro)
30
Aninhando Layouts para obter
8/9/2019 2-Interface Gráfica.pdf
31/33
Aninhando Layouts para obterlayouts complexos
31
Exercício ComplexLayout
8/9/2019 2-Interface Gráfica.pdf
32/33
Exercício - ComplexLayout
32
Adicione outro XML de layout ao projeto (absolutelayout.xm
CONTINUA ….
Exercício - ComplexLayout
8/9/2019 2-Interface Gráfica.pdf
33/33
Exercício - ComplexLayout
33
Adicione outro XML de layout ao projeto (absolutelayout.xm