mos incluir o atributo android:theme="@android:style/Theme.Black" na tag application e executar a aplicação novamente. Agora ela está com uma aparência mais escura como mostrado na figura 2.9.
Figura 2.9: Aplicação HelloAndroid com outro tema
2.8
Conclusão
Neste capítulo compreendemos como as aplicações são geradas e empacotadas para execução na máquina virtual Dalvik, além de uma visão geral dos componentes
de aplicação (activities, services, content providers e broadcast receivers). Através de exemplos, exploramos um recurso-chave na plataforma Android que são as Intents.
Além disso, foi apresentado o ciclo de vida da Activity e em quais situações ela 52
Casa do Código
Capítulo 2. Entenda o funcionamento do Android
muda de estado.
A organização dos elementos de interface gráfica, widgets e layouts foi apresentada assim como a utilização de estilos e temas para a modificação da aparência da aplicação. Todos os itens apresentados aqui servem como alicerce para os demais capítulos, que fazem uso desses conceitos fundamentais para o desenvolvimento de aplicações concretas e cada vez mais elaboradas.
53
Capítulo 3
Domine os principais elementos de
Interface Gráfica
Neste capítulo iremos explorar a construção de interfaces gráficas e daremos início à implementação de uma aplicação que nos acompanhará durante todo o restante
do livro. A aplicação que iremos desenvolver servirá para nos ajudar a controlar os gastos realizados em nossas viagens de lazer ou negócios. Não é uma ideia revolu-cionária, mas irá nos ajudar muito, pois uma aplicação assim possui um domínio muito rico, além de revelar problemas comuns do desenvolvimento para Android.
Nossa aplicação será batizada de BoaViagem e nela poderemos criar uma nova viagem, informando os destinos, datas de chegada e partida e se ela é de negócios ou lazer. Para cada viagem, poderemos informar os gastos realizados por categoria, tais como alimentação, passeios, locomoção e hospedagem.
Casa do Código
Código fonte completo do projeto
Caso queira, você pode consultar o código fonte completo do Bo-
aViagem, que deixei disponível no meu github: https://github.com/
joaobmonteiro/livro-android.
Os exemplos estão organizados por capítulo. Portanto, fique à von-
tade para baixar, consultar, sugerir melhorias e incrementar a aplicação.
Também se deverá informar qual o orçamento disponível para a realização da
viagem. Esta informação poderá ser usada para que a aplicação nos alerte quando estivermos próximos de ultrapassar o limite de gastos estabelecido. Estas são as funcionalidades principais e no decorrer do livro aprenderemos outras coisas como a captura de fotos, uso do GPS e mapas, integração e compartilhamento de dados que você pode posteriormente incluir como nova funcionalidade do aplicativo. A imagem 3.1 mostra algumas de suas telas.
Figura 3.1: Telas do BoaViagem
Para começar, vamos criar as telas com o objetivo de conhecer os diversos tipos de layout e os widgets básicos para compor formulários de entrada de dados e no capítulo seguinte incluiremos a persistência destes dados. Então vamos lá! Caso queira seguir codificando, crie um novo projeto Android, com o nome BoaViagem e o pacote br.com.casadocodigo.boaviagem, da mesma forma que fizemos no
capítulo 1.
Neste primeiro momento nos preocuparemos com as duas telas iniciais da apli-
cação, a tela de login e a tela inicial de opções, comumente chama de dashboard.
Abaixo temos o protótipo com os detalhes dos tipos de layout que iremos utilizar.
56
Casa do Código
Capítulo 3. Domine os principais elementos de Interface Gráfica
Figura 3.2: Tela de login e dashboard
3.1
LinearLayout
Para a tela de login, utilizaremos o LinearLayout, que permite a organização dos elementos de forma linear, posicionando itens um abaixo do outro, quando configurado com orientação vertical, ou um ao lado do outro, quando configurado com orientação horizontal. Às vezes escolher a orientação certa causa um pouco de confusão, então a dica é se lembrar de que a orientação diz respeito à direção
na qual os itens serão incluídos na tela. Ou seja, na orientação vertical, os itens serão incluídos no layout de cima para baixo e na orientação horizontal, da esquerda para a direita.
Então para fazer uma tela de login parecida com a do protótipo 3.2, utilizaremos um LinearLayout, com orientação vertical. Para esta tela, podemos criar um
novo arquivo de layout com o nome de login.xml. O primeiro passo é definir o
LinearLayout que queremos e dizer que a orientação será vertical:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
57
3.1. LinearLayout
Casa do Código
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="vertical" >
<!-- Campos virão aqui -->
</LinearLayout>
Para especificar um layout existem dois atributos fundamentais:
o
layout_width (linha 3), que indica a largura do elemento, e layout_height