android aula 1

100
Erisvaldo Gadelha Saraiva Júnior Faculdade de Tecnologia de João Pessoa (FATEC-JP) Especialização em Desenvolvimento para Dispositivos Móveis Disciplina: Tecnologias para Dispositivos Móveis Android E-mail: [email protected] Site: http://erisvaldojunior.com Twitter: @erisvaldojunior

Upload: erisvaldo-junior

Post on 18-Nov-2014

9.897 views

Category:

Technology


1 download

DESCRIPTION

Aula 1 de Android para a disciplina Tecnologias para Dispositivos Móveis da FATEC (João Pessoa - PB)

TRANSCRIPT

Page 1: Android Aula 1

Erisvaldo Gadelha Saraiva Júnior

Faculdade de Tecnologia de João Pessoa (FATEC-JP) Especialização em Desenvolvimento para Dispositivos Móveis Disciplina: Tecnologias para Dispositivos Móveis

Android

E-mail: [email protected] Site: http://erisvaldojunior.com

Twitter: @erisvaldojunior

Page 2: Android Aula 1

Empreendedor Yupi Studios (http://yupistudios.com);

Desenvolvedor Mobile (LAViD); Mestrando em Informática (UFPB); Analista de Sistemas (Cehap).

Sobre mim

Page 3: Android Aula 1

Sobre a Yupi Studios

www.yupistudios.com

Page 4: Android Aula 1

Games (MinerMan)

Page 5: Android Aula 1

Aplicativos (Pump Me Up!)

Page 6: Android Aula 1

Soluções Corporativas (Cardápio Digital)

Page 7: Android Aula 1

Org

aniz

e w

ith

Se

ctio

ns

O que será exposto na aula?

Conceitos Introdutórios; Mercado Mobile; Expor as Tecnologias e Tendências; Introduzir o Android e preparar o ambiente de desenvolvimento.

Page 8: Android Aula 1

Co

nce

ito

s In

tro

du

tóri

os

Era da Computação Ubíqua

Page 9: Android Aula 1

Co

nce

ito

s In

tro

du

tóri

os

Computação Móvel / Pervasiva / Ubíqua

Page 10: Android Aula 1

Co

nce

ito

s In

tro

du

tóri

os

Computação Móvel / Pervasiva / Ubíqua

Page 11: Android Aula 1

Co

nce

ito

s In

tro

du

tóri

os

Computação em Nuvem (Cloud Computing)

Page 12: Android Aula 1

Co

nce

ito

s In

tro

du

tóri

os

Computação em Nuvem (Cloud Computing)

Page 13: Android Aula 1

Co

nce

ito

s In

tro

du

tóri

os

Realidade Aumentada

Page 14: Android Aula 1

Roteiro da Aula

Entendendo o Mundo da Mobilidade

VISÃO GERAL DO MERCADO

PLATAFORMAS E TENDÊNCIAS

A PLATAFORMA ANDROID

Page 15: Android Aula 1

VISÃO GERAL DO MERCADO

Números do Mercado Mobile no Brasil e no Mundo

Page 16: Android Aula 1

Org

aniz

e w

ith

Se

ctio

ns

O Mercado Mobile

Mercado brasileiro de telefonia móvel; Números do mercado internacional; Mercado de jogos (Brasil e mundo).

Page 17: Android Aula 1

Celulares no Brasil (2007 a 2009)

Page 18: Android Aula 1

Market Share das operadoras no Brasil (2007 a 2009)

Page 19: Android Aula 1

Mercado brasileiro de celulares (2010)

202 milhões e 944 mil celulares Crescimento de 16,7%; 104,7 celulares a cada 100 habitantes. Operadoras Vivo - 29,7% Claro - 25,4% TIM – 25,1% Oi – 19,4%

Page 20: Android Aula 1

Celulares no mundo (2000 a 2009)

Page 21: Android Aula 1

Principais mercados de celular no mundo (2008 e 2009)

Page 22: Android Aula 1

Operadoras de telefonia no mundo (2008 e 2009)

Page 23: Android Aula 1

Market Share dos fabricantes (2005 a 2007)

Page 24: Android Aula 1

Market Share dos fabricantes (2009 e 2010)

Page 25: Android Aula 1

Mercado americano de jogos para dispositivos móveis

Page 26: Android Aula 1

Mercado mundial de jogos para dispositivos móveis

Gartner

Page 27: Android Aula 1

Plataformas e Tendências

Plataformas de Mobilidade e Tendências do Mercado

Page 28: Android Aula 1

SOs para Desenvolvimento (no Presente)

iOS Android

RIM SYMBIAN

PALM OS Windows Mobile MAEMO

Page 29: Android Aula 1

iOS (Apple)

iPod, iPhone (2007) e iPad (2010); Baseado no Mac OS X (Objective-C); Kit de desenvolvimento exclusivo para Mac OS; Aplicativos exclusivamente na Apple App Store.

Page 30: Android Aula 1

Android (Open Handset Alliance, liderada pelo Google)

Plataforma aberta baseada em Linux; Android Development Tools (ADT) Plugin para Eclipse; Desenvolvimento em Java (Linux / Windows / Mac OS); 1º smartphone: HTC G1 (2008); 1º tablet: Samsung Galaxy Tab (2010).

Page 31: Android Aula 1

Plataformas para Desenvolvimento (no Presente)

JavaME

Flash Lite

PyS60

BREW

Page 32: Android Aula 1

JavaME

Quase 2 bilhões de aparelhos; Grande comunidade de desenvolvedores; Atingiu 95% dos aparelhos em 2007.

Page 33: Android Aula 1

Comparativo entre JavaME e Flash Lite

Page 34: Android Aula 1

Comparativo entre Tecnologias

Page 35: Android Aula 1

SOs para Desenvolvimento (Apostas para o Futuro)

Windows Phone 7

MeeGo BADA

Page 36: Android Aula 1

Org

aniz

e w

ith

Se

ctio

ns

Mercado Mobile em 2010 (Divisão dos SOs) Segundo a AdMob, dados de 2010, o Android ocupa a segunda posição entre os sistemas operacionais para smartphone no mundo, possuindo 26% do mercado e atrás apenas do iOS, que detém 40%.

Page 37: Android Aula 1

Org

aniz

e w

ith

Se

ctio

ns

Mercado Mobile em 2010 (Crescimento dos SOs) Um aspecto interessante, porém, é o crescimento do Android no mercado. O SO vem em uma ascendente contínua, ao contrário do iOS, que vem oscilando, e do Symbian OS, que perdeu mercado.

Page 38: Android Aula 1

Org

aniz

e w

ith

Se

ctio

ns

Mercado Mobile em 2010 (Divisão dos Fabricantes) A AdMob também mostra que a Apple (aparelhos iOS) possui a maior fatia de smartphones do mercado. A Nokia (aparelhos Symbian e Maemo) detém a segunda posição.

Page 39: Android Aula 1

Org

aniz

e w

ith

Se

ctio

ns

Android deve superar iOS em breve Várias pesquisas e especialistas apontam que o Android deve se tornar mais popular que o iOS nos próximos anos.

Android deve superar sistema operacional do iPhone em 2012, diz estudo. http://www.tecnologia3g.com.br/site/pt/page/noticias_detalhe.asp?cod=261 Android é a plataforma que mais cresce, diz consultoria http://tecnologia.ig.com.br/noticia/2010/11/03/android+e+a+plataforma+que+mais+cresce+diz+consultoria+9956087.html Co-fundador da Apple (Steve Wozniak) acredita que Android ganhará corrida entre smartphones http://olhardigital.uol.com.br/produtos/digital_news/co-fundador-da-apple-acredita-que-android-ganhara-corrida-entre-smartphones/14935 Demanda por desenvolvedores Android cresceu 710% em um ano http://imasters.com.br/noticia/18931/carreira/demanda_por_desenvolvedores_android_cresceu_710_em_um_ano/

Page 40: Android Aula 1

Lojas de Aplicativos para Dispositivos Móveis (App Stores)

Modelo Antigo (antes das App Stores)

Desenvolvedor / Pequena Empresa

Publisher / Grande Empresa Operadoras

A porcentagem final para o desenvolvedor independente ou pequena empresa acabava sendo menor que 20% do total.

Page 41: Android Aula 1

Lojas de Aplicativos para Dispositivos Móveis (App Stores)

Novo Modelo (era das App Stores)

Desenvolvedor / Empresa

Loja de aplicativos do Fabricante ou Operadora

A porcentagem final para o desenvolvedor independente ou empresa agora gira em torno de 70% do total.

Page 42: Android Aula 1

Ap

p S

tore

s Apple App Store Loja de aplicativos para iOS (iPod, iPhone e iPad) gerenciada pela Apple e disponível através dos próprios aparelhos. Lançada em julho de 2008;

340 mil aplicativos e 10 bilhões de downloads até janeiro de 2011; Disponível em cerca de 90 países; Share de 70% Desenvolvedor e 30% Apple; Desenvolvedor paga inscrição e anuidade no valor de U$ 99,00.

Page 43: Android Aula 1

Ap

p S

tore

s Google Android Market Loja de aplicativos para Android gerenciada pela Google e disponível através dos próprios aparelhos. Lançado em outubro de 2008;

Mais de 200 mil aplicativos e 3 bilhões de downloads até janeiro de 2011; Disponível em cerca de 48 países; Share de 70% Desenvolvedor e 30% Google; Desenvolvedor paga taxa única de inscrição no valor de U$ 25,00.

Page 44: Android Aula 1

Org

aniz

e w

ith

Se

ctio

ns

Comparativo Android Market X Apple App Store Dados referentes ao ano de 2009, quando a distância entre Android Market e a Apple App Store ainda era muito grande.

Page 45: Android Aula 1

Org

aniz

e w

ith

Se

ctio

ns

Comparativo Android Market x Apple App Store A média de downloads da Apple App Store é superior a do Android Market, bem como a porcentagem de usuários que compram aplicações (dados de 2009).

Page 46: Android Aula 1

Ap

p S

tore

s Nokia Ovi Store Loja de aplicativos para dispositivos Nokia (Symbian, QT, Flash Lite e JavaME) e disponível através dos próprios aparelhos.

Lançada em maio de 2009; 50 mil aplicativos e média de 3 milhões de downloads por dia (janeiro de 2011); Disponível em mais de 200 países; Share de 70% Desenvolvedor e 30% Nokia; Desenvolvedor paga taxa única de inscrição de apenas 1 (um) euro.

Page 47: Android Aula 1

Comparação entre App Stores (custo para desenvolvedores)

Page 48: Android Aula 1

Relação de App Stores (distimo.com)

Page 49: Android Aula 1

Ap

p S

tore

s In-App Payment é uma tendência Jogos e aplicativos são gratuitos à priori, embora vários recursos possam ser comprados dentro do próprio aplicativo.

Page 50: Android Aula 1

A plataforma Android

Introdução ao Android, Arquitetura e Layouts

Page 51: Android Aula 1

Definição do Android

Pilha de Software para Dispositivos Móveis que inclui um Sistema Operacional, um Middleware e aplicações-chave. O Android SDK provê ferramentas e APIs para o desenvolvimento de aplicações na plataforma Android usando a linguagem de programação Java.

Page 52: Android Aula 1

Recursos do Android

• Biblioteca Gráfica 2D e Suporte a 3D (OpenGL ES 1.0); • SQLite; • Suporte a Mídias diversas (MPEG-4, H.264, MP3, AAC, AMR, JPG, PNG, GIF); • Bluetooth, EDGE, 3G e WiFi (dependente do hardware); • Câmera, GPS, Bússola e Acelerômetro (dependente do hardware); • Para desenvolvedores: Android Development Tools (ADT) Plugin para Eclipse.

Page 53: Android Aula 1

História do Android

Julho de 2005: Google comprou a startup Android; Novembro de 2007: Google anunciou a Open Handset Alliance (OHA) e o Android; Ainda nesse mês, liberou a primeira versão do Android SDK.

Page 54: Android Aula 1

História do Android

Outubro de 2008: Android se torna Open Source; Ainda nesse mês, lançado o primeiro smartphone com Android: o HTC G1; Lançado o primeiro Android Developer Phone (ADP), baseado no G1.

Page 55: Android Aula 1

História do Android

Julho de 2009: HTC Hero, concorrente direto do iPhone; Novembro de 2009: Motorola Droid, 1 milhão de unidades em pouco mais de dois meses; Chegou no Brasil como Motorola Milestone e foi sucesso de vendas.

Page 56: Android Aula 1

História do Android

Em 2010, dezenas de ótimos smartphones Android foram lançados; Setembro de 2010: Samsung Galaxy Tab, primeiro tablet a concorrer com o iPad; Dezembro de 2010: Quarto ADP lançado, o Samsung Nexus S.

Page 57: Android Aula 1

Versões do Android

AndroidManifest.xml

Page 58: Android Aula 1

Android 1.1 (fevereiro de 2009)

•Alarm Clock •API Demos •Browser •Calculadora •Camera •Contatos •Dev Tools •Dialer •Email •Maps (e StreetView) •Mensagem •Música •Imagens (Galeria) •Configurações

Page 59: Android Aula 1

Android 1.5 Cupcake (maio de 2009)

Grande evolução na interface (UI), adicionando as seguintes novidades: •Gravação de vídeos •Bluetooth A2DP •Conexão Bluetooth Automática •Upload de vídeos para YouTube e Picasa •Copiar e Colar

Page 60: Android Aula 1

Android 1.6 Donut (setembro de 2009)

O HTC Hero trazia essa versão, que incluia o novo Android Market, além das seguintes melhorias: •Integração de câmera, gravação de vídeos e galeria •Busca por gestos e voz •Integração de aplicativos •Grande melhoria no Text-To-Speech

Page 61: Android Aula 1

Android 2.0/2.1 Eclair (outubro de 2009)

Uma das versões mais usadas até hoje. •Desempenho otimizado •Mais opções de tamanho e resolução de tela •UI bastante melhorada •Suporte ao Exchange •Live wallpapers •Teclado virtual melhorado •Bluetooth 2.1 •Google Maps 3.1.2

Page 62: Android Aula 1

Android 2.2 Froyo (maio de 2010)

•Suporte completo ao Flash 10.1 •Desempenho bastante otimizado (até 5x) •Hotspot para até 8 aparelhos •Home Screen melhorada (atalhos dedicados) •Melhoria do Exchange •Melhoria da câmera •Salvar aplicativos no cartão de memória •Discagem por bluetooth

Page 63: Android Aula 1

Android 2.3 Gingerbread (dezembro de 2010)

•Melhoria do Copiar e Colar •Interface melhorada •Suporte a NTFC •Teclado multitouch •Suporte a SIP •Gerenciador de Downloads •Suporte a câmera frontal e vídeo-conferência

Page 64: Android Aula 1

Ap

p In

ven

tor

for

An

dro

id

Google App Inventor for Android Criação de aplicações para Android visualmente, sem a necessidade de escrever código.

Page 65: Android Aula 1

Ap

p In

ven

tor

for

An

dro

id

Google App Inventor for Android Orientado a blocos, basta definir as suas propriedades visuais e as suas ações para determinados eventos.

Page 66: Android Aula 1

Ap

p In

ven

tor

for

An

dro

id

Google App Inventor for Android

Page 67: Android Aula 1

Arquitetura do Android

Page 68: Android Aula 1

Arquitetura do Android

Applications Conjunto de aplicações-chave nativas do Android, incluindo um cliente de e-mail, gerenciador de SMS, calendário, mapa, navegador, gerenciador de contatos e outros. Todas essas aplicações foram escritas em Java. Application Framework

Desenvolvedores tem acesso completo às mesmas APIs que as aplicações-chave. O framework provê um conjunto de Views que podem ser utilizados para construir a interface da aplicação, incluindo listas, tabelas, caixas de texto, botões e até mesmo um browser embutido. Disponibiliza também Content Providers que permitem o acesso a dados de outras aplicações (como o gerenciador de Contatos). Há, ainda, o Resource Manager (provê acesso a recursos como imagens e arquivos de layout), o Notification Manager (permite que a aplicação mostre avisos personalizados) e o Activity Manager (gerencia o ciclo de vida da aplicação e a sua navegação).

Page 69: Android Aula 1

Arquitetura do Android

Libraries Conjunto de bibliotecas C/C++ utilizadas por vários componentes do Android. Essas bibliotecas provêem recursos que são expostos aos desenvolvedores através de sua camada sobrejacente: Application Framework. Android Runtime

Cada aplicação no Android roda em um processo diferente no Linux e para cada processo é criada uma instância da máquina virtual Dalvik. Essa máquina virtual foi criada de forma que um dispositivo possa executar múltiplas instâncias de forma eficiente. As classes compiladas da aplicação são transformadas para o formato .dex (Dalvik Executable), otimizado para uma mínima utilização de memória. A Dalvik VM interage diretamente com o kernel Linux para execução de funcionalidades subjacentes como tratamento de concorrência e gerenciamento de memória.

Page 70: Android Aula 1

As aplicações são escritas em Java e o seu código compilado, juntamente com os recursos que a aplicação utilizada, são empacotados em um arquivo .apk pela ferramenta aapt. É esse arquivo .apk que é usado para distribuir a aplicação e instalá-la nos dispositivos Android;

Por padrão, cada aplicação é executada como um processo separado, com ID único e máquina virtual própria, isolando o seu código das demais aplicações.

Noções sobre aplicações Android

Page 71: Android Aula 1

Componentes da Aplicação

Um recurso fundamental do Android é o reuso de componentes. Caso uma aplicação precise disponibilizar uma lista de imagens com scrolling e outra aplicação apresenta tal componente e o disponibilizou para as demais, pode-se invocar esse componente.

Devido a essa organização dos aplicativos em componentes, as aplicações Android não possuem um único ponto de entrada (não há um método main(), por exemplo). Ao invés disso, as aplicações apresentam componentes essenciais que o sistema pode instanciar e executar quando necessário. Esses componentes podem ser de quatro tipos:

Activities (apresenta uma interface visual para o usuário) Services (roda em segundo plano por um período de tempo indeterminado) Broadcast Receivers (recebe e reage a eventos do sistema) Content providers (dados do aplicativo disponíveis para os demais)

Page 72: Android Aula 1

Ativando e desativando componentes

Content Providers são ativados por meio de uma requisição de um ContentResolver. Os demais componentes (Activities, Services e Broadcast Receivers) são ativados por mensagens assíncronas denominadas intents. Trata-se de um objeto da classe Intent que armazena o conteúdo da mensagem. Para activities e services, o objeto apresenta o nome da ação que está sendo requisitada bem como o endereço do dado em que atuará, além de outras coisas. No caso de uma Activity, por exemplo, pode conter uma requisição para apresentar uma imagem ao usuário ou permitir que o usuário edite algum texto. Já para Broadcast Receivers, o objeto Intent pode anunciar que um botão da câmera foi pressionado, por exemplo.

Content Provider e BroadCast Receiver não precisam ser desativados, uma vez que permanecem ativos somente enquanto estão respondendo requisições. Já Activities e Services podem permanecer em execução por um longo período de tempo, daí a necessidade de finalizá-los através dos métodos finish() e stopSelf(), respectivamente.

Page 73: Android Aula 1

Activities

O componente mais comum de uma aplicação é um Activity. É implementado como uma subclasse de Activity e uma aplicação pode conter uma ou mais activities. Cada qual representa uma interface visual e uma delas é marcada como sendo a inicial que deve ser apresentada quando a aplicação é iniciada. Mover-se de uma Activity para outra consiste em fazer com que a Activity atual invoque a próxima.

Cada Activity possui uma janela padrão para desenhar. Normalmente a janela ocupa a tela toda mas também pode ser menor e flutuar sobre outras janelas. Uma Activity pode conter janelas adicionais, como por exemplo um dialog que exige uma resposta do usuário ou mostra um aviso quando um dado item é selecionado.

O visual da janela é composto por uma hierarquia de views, objetos derivados da classe base View. As views também são responsáveis por responder às ações do usuário direcionadas ao seu espaço.

Page 74: Android Aula 1

Activities e Tasks

Conforme dito anteriormente, uma Activity pode iniciar outra, inclusive uma que pertença a outro aplicativo. Por exemplo: uma aplicação deseja mostrar o mapa de algum local. Já existe uma Activity que o faz, então tudo o que a sua Activity precisa fazer é chamar o método startActivity() passando como parâmetro o objeto da classe Intent com as informações necessárias. O mapa será mostrado e, quando o usuário pressionar a tecla voltar, sua Activity será mostrada novamente na tela.

Para o usuário, isso é transparente. O Android mantém ambas as activities na mesma Task. Uma Task, para o usuário, é como se fosse uma aplicação. Tecnicamente é um grupo de Activities relacionadas que foram adicionadas em uma pilha. A base da pilha é a primeira Activity que é mostrada quando a Task é iniciada, enquanto que o topo é a Activity que está sendo executada no momento, ou seja, que está recebendo o foco das ações do usuário.

Page 75: Android Aula 1

Ciclo de vida de uma Activity

Basicamente, uma Activity possui três estados:

Ativo: quando a Activity está no topo da pilha (visível na tela e recebendo as ações do usuário); Pausado: quando a Activity perdeu o foco mas permanece visível ao usuário. Ou seja, há outra Activity no topo que é transparente ou não ocupa toda a tela; Parado: quando a Activity está ofuscada por outra. Mantém o estado mas pode ser eliminada pelo sistema em caso de falta de memória.

Page 76: Android Aula 1

Ciclo de vida de uma Activity

Page 77: Android Aula 1

Services

Diferentemente de activities, os services não possuem interface e executam em segundo plano por um período de tempo indeterminado. Cada serviço é uma classe que herda de Service.

Um exemplo clássico de Service é um tocador de músicas. A aplicação deve consistir de uma ou mais activities que permitem ao usuário selecionar as músicas e começar a tocá-las. Contudo, a execução das músicas em si não faz parte da Activity mas sim de um Service, uma vez que o usuário espera que a música continue a ser tocada após sair da tela.

Page 78: Android Aula 1

Ciclo de vida de um Service

Page 79: Android Aula 1

Broadcast Receivers

Componente que recebe e reage a anúncios de broadcast, geralmente oriundos do sistema. Cada receiver é uma classe que herda de BroadCastReceiver.

Mudança no fuso horário, anúncio de bateria fraca e mudança da linguagem por parte do usuário são exemplos de anúncios que podem ser capturados por Broadcast Receivers. Uma aplicação pode conter quantos receptores quiser. Os receptores podem iniciar uma Activity ou utilizar o NotificationManager para alertar o usuário (acender a luz do aparelho, vibrar, executar um som, etc).

Page 80: Android Aula 1

Ciclo de vida de Broadcast Receivers

Quando uma mensagem de broadcast chega ao receptor, o Android invoca o método onReceive(), passando como parâmetro um objeto Intent contendo a mensagem.

O Broadcast Receiver fica ativo apenas enquanto está executando esse método.

Page 81: Android Aula 1

Content Providers

Componente que torna um conjunto específico de dados da aplicação disponível para outras aplicações. Cada provider é uma classe que herda de ContentProvider e disponibiliza um conjunto padrão de métodos para que outras aplicações possam recuperar e armazenar dados do tipo que o provedor controla.

As aplicações não podem acessar os métodos de um Content Provider diretamente. Para isso, elas precisam de um objeto ContentResolver, o qual pode conversar com qualquer Content Provider.

Page 82: Android Aula 1

Sup

ort

e a

ltip

las

Tela

s Como o Android suporta múltiplas telas? Desde o Android 1.6, a plataforma provê suporte a múltiplos tamanhos de tela e resoluções, adequando-se aos muitos tipos e tamanhos de dispositivos com Android. Assim, a partir do Android 1.6, a plataforma divide a infinidade de tamanhos de tela e resoluções suportadas em: • Um conjunto de três tamanhos: large, normal e small; • Um conjunto de três densidades: hdpi (high), mdpi (medium) e ldpi (low).

Dessa forma, a aplicação pode prover layouts e imagens para qualquer um desses três conjuntos, sem a necessidade de trabalhar com o tamanho físico real da tela do aparelho. Em tempo de execução, o Android carrega o conjunto adequado de recursos, baseado no dispositivo em questão.

Page 83: Android Aula 1

Sup

ort

e a

ltip

las

Tela

s

Page 84: Android Aula 1

Sup

ort

e a

ltip

las

Tela

s

Page 85: Android Aula 1

Sup

ort

e a

ltip

las

Tela

s

Organização de pastas de layout e imagens para uma aplicação que, em tese, suporta todos os tamanhos de telas e resoluções.

Page 86: Android Aula 1

Views e ViewGroups em Android

Em Android, todos os componentes de interface gráfica são representados por subclasses de android.view.View que representam os componentes gráficos como TextView, Button, TextEdit, RadioButton, CheckBox, etc. Além da classe android.view.ViewGroup, que representa um container de views e também de ViewGroups. Ela é a classe base para componentes de layouts, como LinearLayout, RelativeLayout, AbsoluteLayout, FrameLayout, TableLayout, etc.

Page 87: Android Aula 1

Hie

rarq

uia

de

cla

sse

s d

e U

I

Page 88: Android Aula 1

Layouts e Layout Params em Android Para que os componentes possam ser acomodados de acordo com o layout de seu pai, os mesmos devem manter uma relação de obediência. Sendo assim, cada filho deve configurar os seus parâmetros de layouts, por meio da classe ViewGroup.LayoutParams, que permite que estes determinem suas propriedades de posição e tamanho referente ao layout de seus pais.

Page 89: Android Aula 1

LinearLayout

O layout básico, padrão quando da geração de um .XML de layout no Android, é o LinearLayout. Como o próprio nome diz, ele dispõe os componentes linearmente em uma unica direção definida pelo atributo android:layout_orientation.

Page 90: Android Aula 1

LinearLayout e LayoutParams android:layout_gravity: similar ao float do CSS, o gravity define a posição do conteúdo do LinearLayout na tela, podendo-se usar top, bottom, left, right, center, center_vertical, center_horizontal, etc. Pode-se usar combinações através do conector “|”. Por exemplo: “bottom | right”. android:layout_weight: indica quanto do espaço extra no LinearLayout será alocado para a visão associada aos LayoutParams. Ou seja, pode-se dividir a tela entre os layouts atribuindo a cada um deles um peso que define qual deles terá maior espaçamento e, casa todos tenham o mesmo peso, a tela é dividida igualmente.

Aplicação de peso (weight) em um componente do LinearLayout

Page 91: Android Aula 1

LinearLayout (Código)

Page 92: Android Aula 1

FrameLayout Arranja seus filhos de acordo com uma pilha de componentes que são adicionados, sendo que o topo da pilha contém o objeto que foi adicionado por último. Pode-se usar quando se tem várias imagens e uma é sobreposta pela outra (como um slide de imagens) conforme vão sendo adicionadas.

Sobreposição de componentes com FrameLayout

Criando uma pilha de componentes com FrameLayout

Page 93: Android Aula 1

FrameLayout (Código)

Nota: O FrameLayout é usado comumente a partir de uma de suas subclasses, tais como ImageSwitcher, ViewAnimator, ViewSwitcher, ScrollView, TabHost, etc.

Page 94: Android Aula 1

AbsoluteLayout Implementa um plano cartesiano e posiciona os componentes em coordenadas X, Y de forma absoluta.

Posicionando componentes no AbsoluteLayout

Page 95: Android Aula 1

AbsoluteLayout (Código)

Page 96: Android Aula 1

RelativeLayout Os componentes são ajustados através de relacionamentos entre si ou ao seu pai.

Page 97: Android Aula 1

RelativeLayout (Código)

Page 98: Android Aula 1

TableLayout Comporta seus filhos em linhas e colunas. Cada filho é representado por um TableRow (uma espécie de LinearLayout na horizontal) que permite que uma ou ais células sejam adicionadas horizontalmente, sendo que cada célula pode conter um único View.

Page 99: Android Aula 1

TableLayout (Código)

Page 100: Android Aula 1

What’s Your Message? OBRIGADO!