Luciano Alves da SilvaApresentaçãoO         Android é uma plataforma aberta voltada para        dispositivos móveis desenv...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresÍndice analítico1)...
Luciano Alves da Silva    4.15) Desenvolvendo uma aplicação que visualiza imagens(Com ImageView) ............................
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores7) Trabalhando com...
Luciano Alves da Silva    12.1.4) O comando DELETE ........................................... 333    12.1.5) O comando SE...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores1) Visão geral sob...
Luciano Alves da Silva                      G1 - T-MobileNão demorou muito para que o Android chegasse aqui noBrasil. Hoje...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores                  ...
Luciano Alves da Silva1.2) Estrutura Geral da plataforma Google AndroidO Android SDK é uma ferramenta de desenvolvimento q...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores- Câmera, GPS, com...
Luciano Alves da Silva- agenda;- mapas;- navegador;- contatos entre outros.Todos os aplicativos acima presentes no Android...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores- FreeType – Bibli...
Luciano Alves da Silva2) Instalando e Configurando o Android SDK no EclipseP     ara a elaboração desse livro eu fiz o uso...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresSe você já possui ...
Luciano Alves da SilvaAo executá-lo ele irá atualizar as suas fontes , conformedemonstra a figura seguinte:          Proce...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresVamos cancelar a i...
Luciano Alves da Silva            Caixa de diálogo - Available PackagesNós iremos trabalhar aqui neste livro com a platafo...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresVamos proceder com...
Luciano Alves da Silva              Instalação do Android concluídaUma etapa concluída. Agora vamos instalar o Eclipse com...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresAo fazer esse proc...
Luciano Alves da Silva                Caixa de diálogo - Add SiteAgora vamos clicar no botão “Archive” e iremos procurar e...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores                  ...
Luciano Alves da Silva                 Caixa de Dialogo - InstallApós fazer isso clique no botão “Next”, e em seguida será...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores                  ...
Luciano Alves da SilvaSe em algum momento durante o processo for exibida a figuraabaixo:                    Caixa de mensa...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores                Ca...
Luciano Alves da Silva            Android SDK and AVD ManagerFeito o procedimento acima, será aberta uma tela conformemost...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresPara criarmos um d...
Luciano Alves da SilvaDepois de preencher todos os campos, a tela de criação do AVDdeve estar de acordo com a figura abaix...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores                  ...
Luciano Alves da Silva3) Começando a programar no Google AndroidD        epois de tudo configurado e instalado, vamos come...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores        Criando um...
Luciano Alves da SilvaOs campos preenchidos acima devem estar de acordo com afigura abaixo:       Criando um novo projeto ...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores           Visão g...
Luciano Alves da Silva    @Override    public void onCreate(Bundle savedInstanceState){            super.onCreate(savedIns...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresutilizado o diretó...
Luciano Alves da Silva               Preview da aplicação AndroidPara visualizarmos o código do arquivo “main.xml”simplesm...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores                Pr...
Luciano Alves da SilvaObserve que após a primeira linha (prólogo xml), existe umatag chamada LinearLayout, responsável por...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores           Proprie...
Luciano Alves da SilvaObservem que dentro desse arquivo eu declaro um valor estáticochamado “app_name”, cujo valor é “Hell...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores<?xml version="1.0...
Luciano Alves da SilvaObservem agora a tag <activity>, ela define uma atividade(Activity). Dentro desta tag, eu possuo o a...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores Feito isso, será ...
Luciano Alves da SilvaAgora é só clicar em “Run” e rodar a aplicação. Quando oemulador Android é executado, possivelmente,...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores             Emula...
Luciano Alves da Silva            Emulador do Android em ExecuçãoClique no botão redondo com o titulo “MENU” paradesbloque...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores             Emula...
Luciano Alves da Silvaem vez de abrir outro, com isso a aplicação levará em torno de7 a 12 segundos em média para ser exec...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresVamos fazer mais u...
Luciano Alves da Silva                    Preview da aplicaçãoE ai, está entendo aos poucos como se faz aplicações Android...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores4) Conhecendo as w...
Luciano Alves da Silvaaplicação que faça uso de um desses widgets. Crie um novoprojeto Android com os seguintes dados:Proj...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores                 T...
Luciano Alves da Silva                Tela de layout da aplicaçãoAgora vamos fazer as modificações iniciais no programa.Ob...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores                 T...
Luciano Alves da Silva                 Tela de layout da aplicação      Agora vamos na guia “Properties” encontrar umaprop...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores                 T...
Luciano Alves da Silva                  Tela de layout da aplicaçãoBom, agora vamos modificar duas propriedades dessecompo...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresSe observamos, o v...
Luciano Alves da SilvaAgora você vai inserir, NA SEQUÊNCIA, os componentesTextView e EditText.Na segunda TextView, vamos i...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores                 T...
Luciano Alves da Silva    android:layout_height="wrap_content"android:text="Digite o primeiro número"/><EditText android:l...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresA descrição acima ...
Luciano Alves da SilvaAgora, após a linha:setContentView(R.layout.main);Digite as seguintes linhas de código:ednumero1 = (...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresJá na segunda linh...
Luciano Alves da Silva                     }               });Toda vez que eu clicar no botão ele irá mostrar o resultado ...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresvirtual (como most...
Luciano Alves da SilvaÉ responsável por mostrar a soma na tela através da classeAlertDialog.Builder, responsável por criar...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores“Form Widgets”. Mu...
Luciano Alves da Silva                   Layout da aplicaçãoFeito isso vamos no arquivo “AppAutoComplete.java” e vamosadic...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores        ArrayAdapt...
Luciano Alves da SilvaCria um objeto do tipo Array através da classe ArrayAdapter ecarregamos em seus parâmetros um vetor ...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores4.6) A widget Chec...
Luciano Alves da Silvapropriedade Text da TextView com a frase “Escolha seuproduto”. Feito isso, adicione os seguintes com...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresButton          Pr...
Luciano Alves da Silvapackage br.com.appcompra;import   android.app.AlertDialog;import   android.os.Bundle;import   androi...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores         double to...
Luciano Alves da Silvacada uma verifica se um determinado item foi marcado, se foi,incrementa o valor do item com o valor ...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores4.8) A widget Radi...
Luciano Alves da SilvaNessa primeira versão da aplicação, como havia falado, vamosfazer uso da widget RadioButton.Carregad...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores       Tela de lay...
Luciano Alves da Silva               Estrutura RadioGroup inseridaCom o RadioGroup selecionado, modifique as propriedadesa...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedorescomponentes que es...
Luciano Alves da Silva          Propriedade                  Valor             Text                       45%             ...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores                 L...
Luciano Alves da Silvaandroid:text="45%"android:id="@+id/rb45"></RadioButton><RadioButton     android:layout_width="wrap_c...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores         findViewB...
Luciano Alves da Silva     dialog.setMessage("Seu novo salário é : R$" +     String.valueOf(novo_sal));     dialog.setNeut...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresválida para o cálc...
Luciano Alves da Silva4.11) Desenvolvendo uma aplicação de cálculo de salário(Com Spinner)Bom, agora vamos criar a nossa s...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores                 T...
Luciano Alves da Silva    @Override    public void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanc...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores            case 1...
Luciano Alves da Silvadeclarar um objeto do tipo ArrayAdapter chamadoaPercentual. Esse objeto serve para fazer referencia ...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresíndice do item sel...
Luciano Alves da Silva4.12) A widget ListViewA widget ListView é um componente que possui vários itens aserem selecionados...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedorescontato”. Depois d...
Luciano Alves da Silvaimport android.app.AlertDialog;import android.os.Bundle;import android.widget.*;importandroid.widget...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores                di...
Luciano Alves da SilvaArrayAdapter<String> adapter = newArrayAdapter<String>(this,android.R.layout.simple_list_item_1, con...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores          });Toda ...
Luciano Alves da Silva        Aplicação de lista de contatos em execução4.14) A widget ImageviewA widget ImageView é um co...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresAgora crie um novo...
Luciano Alves da Silva             Importando imagens para aplicaçãoDepois disso, é só clicar em “Finish”.Agora no layout ...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores              Estr...
Luciano Alves da Silva           Selecionando a estrutura LinearLayoutAgora dentro da estrutura LinearLayout que configura...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedoresSe você notou, qua...
Luciano Alves da SilvaAgora vamos colocar na sequência dois Buttons, só que essesdois componentes vão estar dentro da tela...
Aprenda passo a passo a programar em Android - Guia essecial para                        desenvolvedores                  ...
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
android
Upcoming SlideShare
Loading in...5
×

android

13,698

Published on

Arquivo em pdf com o básico da aprendizagem de programação Android.

1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
13,698
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
787
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

android

  1. 1. Luciano Alves da SilvaApresentaçãoO Android é uma plataforma aberta voltada para dispositivos móveis desenvolvida pela Google e atualmente é mantida pela Open Handset Alliance(OHA). Todas as aplicações desenvolvidas para essa plataformautilizam a linguagem Java, o que facilita muitos programadorescom conhecimentos em Java a desenvolver aplicações para essaplataforma.Este livro tem por objetivo mostrar de modo fácil comoprogramar na plataforma para dispositivos móveis da Google(Android) usando a IDE Eclipse.Para quem dedico este livro?Este livro é dedicado aos usuários experientes ou iniciantes emprogramação (tanto para Desktop, Móbile e etc.), que já tenhaalgum contato com a linguagem Java ou de suas derivadas (C,C++ ou C#).
  2. 2. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresÍndice analítico1) Visão geral sobre o Google Android ................................... 6 1.1) Introdução...................................................................... 6 1.2) Estrutura Geral da plataforma Google Android ............ 9 1.2.1) A arquitetura do Android.......................................... 10 1.2.2) Aplicações ................................................................ 10 1.2.3) Android Runtime ...................................................... 12 1.2.4) Linux Kernel............................................................. 122) Instalando e Configurando o Android SDK no Eclipse .. 133) Começando a programar no Google Android ................. 314) Conhecendo as widgets do Android.................................. 52 4.1) A widget TextView ..................................................... 52 4.2) A widget EditText ....................................................... 52 4.3) A widget Button .......................................................... 52 4.4) Desenvolvendo uma aplicação que soma números ..... 52 4.5) A widget AutoCompleteTextView.............................. 69 4.6) A widget CheckBox .................................................... 74 4.7) Desenvolvendo uma aplicação simples de compras.... 74 4.8) A widget RadioButton ................................................. 80 4.9) Desenvolvendo uma aplicação de cálculo de salário(Com RadioButton)................................................................... 80 4.10) A widget Spinner ....................................................... 90 4.11) Desenvolvendo uma aplicação de cálculo de salário(Com Spinner)........................................................................... 91 4.12) A widget ListView .................................................... 97 4.13) Desenvolvendo uma aplicação de lista telefônica ..... 97 4.14) A widget Imageview................................................ 1032
  3. 3. Luciano Alves da Silva 4.15) Desenvolvendo uma aplicação que visualiza imagens(Com ImageView) .................................................................. 103 4.16) A widget Gallery ..................................................... 114 4.17) Desenvolvendo uma aplicação que visualiza imagens(Com Gallery) ......................................................................... 114 4.18) A widget ProgressBar.............................................. 125 4.19) Desenvolvendo uma aplicação que simula umdownload................................................................................. 126 4.20) A widget SeekBar.................................................... 133 4.21) Desenvolvendo uma aplicação que demonstre osistema RGB Color. ................................................................ 133 4.22) A widget DatePicker................................................ 141 4.23) Desenvolvendo uma aplicação de calendário.......... 141 4.24) A widget TimePicker............................................... 145 4.25) Desenvolvendo uma aplicação que faz uso doTimePicker.............................................................................. 145 4.26) A widget ToogleButton ........................................... 149 4.27) Desenvolvendo uma aplicação que faz uso doToogleButton .......................................................................... 149 4.28) A widget Chronometer ............................................ 152 4.29) Desenvolvendo um cronômetro digital ................... 152 4.30) A widget DigitalClock............................................. 161 4.31) Desenvolvendo uma aplicação que mostra a horacorrente do sistema. ................................................................ 161 4.32) A widget ZoomControls .......................................... 163 4.33) Desenvolvendo um programa que aplica zoom emImagens ................................................................................... 1635) Mudando de layouts ......................................................... 170 5.1) Desenvolvendo uma aplicação de cadastro ............... 1776) Trabalhando com mais de uma Activity (Atividade) .... 203 3
  4. 4. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores7) Trabalhando com o componente TabWidget................. 2108) Trabalhando com menus em uma aplicação.................. 2199 ) Conhecendo as caixas de diálogo do Android............... 229 9.1) A classe AlertDialog.................................................. 229 9.2) A classe DatePickerDialog ........................................ 237 9.3) A classe TimePickerDialog ....................................... 239 9.4) A classe ProgressDialog ............................................ 241 9.5) Criando uma caixa de diálogo personalizada ........... 24510) Programação com internet em Android....................... 248 10.1) Trabalhando com sockets em Android .................... 248 10.2) Desenvolvendo uma aplicação cliente em Android eum servidor Java. .................................................................... 249 10.3) Obtendo conteúdo de uma URL .............................. 263 10.4) Enviando informações para uma página Web via URL................................................................................................ 269 10.5) Enviando informações para uma página Web viaPOST (Usando a classe HttpPost) .......................................... 275 10.6) Fazendo download de um arquivo........................... 285 10.7) O componente WebView ........................................ 289 10.8) Desenvolvendo uma aplicação que visita páginas Web................................................................................................ 29211) Programação com multimídia ....................................... 29612) Programação com banco de dados................................ 330 12.1) A linguagem SQL.................................................... 330 12.1.1) O comando CREATE TABLE ............................. 331 12.1.2) O comando INSERT............................................. 332 12.1.3) O comando UPDATE........................................... 3324
  5. 5. Luciano Alves da Silva 12.1.4) O comando DELETE ........................................... 333 12.1.5) O comando SELECT............................................ 333 12.2) Exemplos de SQL usando as funções do Android .. 338 12.3) Desenvolvendo uma aplicação de cadastro (segundaversão)..................................................................................... 34713) Propriedades e eventos dos componentes trabalhados 361 Widget TextView.............................................................. 361 Widget EditText / AutoCompleteTextView ..................... 363 Widget Button................................................................... 367 Widget ToogleButton ....................................................... 369 Widget CheckBox/RadioButton ....................................... 372 Widget Spinner / ListView ............................................... 374 Widget ImageView ........................................................... 376 Widget Gallery.................................................................. 377 Widget ProgressBar .......................................................... 378 Widget SeekBar ................................................................ 380 Widget DatePicker ............................................................ 381 Widget TimePicker ........................................................... 383 Widget Chronometer......................................................... 384 Widget ZoomControls ...................................................... 385 Componente MediaPlayer................................................. 386 Widget VideoView ........................................................... 387Apêndice – Links Úteis ......................................................... 391 5
  6. 6. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores1) Visão geral sobre o Google Android1.1) IntroduçãoC onforme mencionado na apresentação deste livro, o Android é uma plataforma desenvolvida pela Google voltada para dispositivos móveis, totalmente aberta élivre (Open Source), que foi divulgada em 5 de novembro de2007. Ela foi desenvolvida na plataforma Java com sistemaoperacional Linux e atualmente essa plataforma é mantida pelaOHA (Open Handset Alliance), um grupo constituído poraproximadamente 80 empresas as quais se uniram para inovare acelerar o desenvolvimento de aplicações e serviços, com oobjetivo e trazer aos consumidores uma experiência mais ricaem termos de recursos, menos dispendiosa em ternos financeirospara o mercado móvel.Um dos SmartPhones que ofereceu suporte a esse sistemaoperacional foi o G1 da empresa T-Mobile. Confira na imagemseguinte:6
  7. 7. Luciano Alves da Silva G1 - T-MobileNão demorou muito para que o Android chegasse aqui noBrasil. Hoje já contamos com operadoras como a Claro, TIM eVivo que já oferecem suporte a essa plataforma.Os SmartPhones disponíveis aqui no Brasil oferecidos poralgumas dessas operadoras, que suportam o sistema Android éo Samgung Galaxy e o Motorola Milestone. Confira essesSmartPhones nas imagens seguintes: 7
  8. 8. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Samsung Galaxy Motorola Milestone8
  9. 9. Luciano Alves da Silva1.2) Estrutura Geral da plataforma Google AndroidO Android SDK é uma ferramenta de desenvolvimento quedisponibiliza um conjunto de APIs necessárias para desenvolveraplicações para a plataforma Android, utilizando a linguagemJava.Vamos conhecer os recursos encontrados nessa plataforma:- Application framework: Permite a reutilização e substituiçãode componentes ;- Dalvik virtual machine: É uma Máquina Virtual Java (JVM)voltada para dispositivos móveis ;- Browser Integrado baseado no webkit engine ;- Gráficos Otimizados O Android é cosntituído por bibliotecas2D e 3D baseada na especificação OpenGL ES 1.0 ;- SQLite: Sistema Gerenciador de Banco de Dados (SGBD) jáembutido no Android para guardar dados ;- Suporte multimídia: A plataforma já oferece para áudio,vídeo e formatos de imagem (MPEG4, H.264, MP3, AAC,AMR, JPG, PNG, GIF) ;- Telefonia GSM (dependente de hardware) ;- Bluetooth, EDGE, 3G, e WiFi (dependente de hardware) ; 9
  10. 10. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores- Câmera, GPS, compasso, e acelerômetro (dependente dehardware) ;- Rico ambiente de desenvolvimento , incluindo um emuladorde dispositivo, ferramentas de depuração, memória,performance e um plugin para o Eclipse (ADT) ;1.2.1) A arquitetura do Android Arquitetura geral da plataforma1.2.2) AplicaçõesO Android nos fornece um conjunto de aplicaçõesfundamentais, são elas:- um cliente de e-mail;- programa de SMS;10
  11. 11. Luciano Alves da Silva- agenda;- mapas;- navegador;- contatos entre outros.Todos os aplicativos acima presentes no Android foramdesenvolvidos na linguagem de programação Java.O Android nos fornece um conjunto de bibliotecas C/C++utilizadas por vários componentes do sistema. Veja algumas dasbibliotecas abaixo:- System C library: Consiste em uma implementação derivadada biblioteca C padrão baseado no sistema (libc) do BSDsintonizada para dispositivos rodando Linux.- Media Libraries: Baseado no PacketVideo’s OpenCORE; sãoas bibliotecas que suportam os mais diversos formatos de áudioe vídeo, incluindo também imagens.- Surface Manager: Responsável pelo acesso ao subsistema deexibição bem como as múltiplas camadas de aplicações 2D e3D;- LibWebCore: Consiste em um web browser engine utilizadotanto no Android Browser quanto para exibições web.- SGL – o engine de gráficos 2D- 3D libraries: Uma implementação baseada no OpenGL ES 1.0APIs; As bibliotecas utilizam aceleração 3D via hardware(quando disponível) ou o software de renderização 3D altamenteotimizado incluído no Android. 11
  12. 12. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores- FreeType – Biblioteca responsável pela renderização de fontesbitmap e vector;- SQLite – Conforme já mencionado, consiste no sistemagerenciador de banco de dados (SGBD) relacional disponívelpara todas as aplicações.1.2.3) Android RuntimeO Android é costituído por um conjunto de bibliotecas quefornece a maioria das funcionalidades disponíveis nas principaisbibliotecas da linguagem Java.Toda aplicação Android roda em seu próprio processo, com suaprópria instância da máquina virtual Dalvik. O Dalvik foi escritode forma a executar várias VMs eficientemente. Ele executaarquivos .dex, que é otimizado para consumo mínimo dememória. A VM é baseada em registros e roda classescompiladas pela linguagem Java que foram transformadas emarquivos .dex, através da ferramenta “dx” incluída no SDK.O Dalvik VM foi baseado no kernel do Linux parafuncionalidades subjacentes como o encadeamento e a gestão debaixo nível de memória.1.2.4) Linux KernelO Android foi projetado em cima da versão 2,6 do kernel doLinux para os serviços centrais do sistema, tais como segurança,gestão de memória, gestão de processos, etc. O kernel tambématua como uma camada de abstração entre o hardware e o restodo software.12
  13. 13. Luciano Alves da Silva2) Instalando e Configurando o Android SDK no EclipseP ara a elaboração desse livro eu fiz o uso do Eclipse Galileo (Eclipse 3.5.1 para Windows), o SDK do Android Revisão 10 e o plugin do Android para o EclipseADT-10.0.1. Qualquer versão (de preferência superior) dosprogramas citados acima serve. Para que toda essa aplicaçãofuncione é necessário que você tenha instalado, antes de tudo, aMáquina Virtual Java (de preferência a versão 5 ou posterior).Bom, mãos a obra.Para saber se você possui uma Maquina virtual Java entre noprompt de comando de digite a seguinte linha: java –versionSe mostrar algo parecido como mostra o código abaixo: java version "1.6.0_07"Java(TM) SE Runtime Environment (build 1.6.0_07-b06)Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode,sharing)Significa você possui uma máquina virtual Java instalada no seucomputador, caso contrário, instale o JDK. Você pode fazer odownload do JDK pelo link abaixo:http://www.oracle.com/technetwork/java/javase/downloads/index.html 13
  14. 14. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresSe você já possui a máquina virtual Java instalada em seucomputador, basta agora você fazer o download do Eclipse, quepode ser feita pelo link abaixo:http://www.eclipse.org/downloads/Para fazer o download do Android SDK e do seu plugin , façapelo link abaixo:http://developer.android.com/sdk/index.htmlDepois de obter os programas e plugins citados acima, vamosfazer agora as devidas configurações. Primeiramente, você irádescompactar o arquivo “android-sdk_r10-windows.zip”, depreferência no diretório raiz “C:”. Depois de descompactar,execute o utilitário “SDK Manager”, que se encontra dentro dapasta descompactada, conforme é mostrado na figura abaixo: Conteúdo do arquivo descompactado14
  15. 15. Luciano Alves da SilvaAo executá-lo ele irá atualizar as suas fontes , conformedemonstra a figura seguinte: Processo de atualização das informaçõesAo terminar o processamento acima, ele ira mostrar uma lista depacotes disponíveis e necessários para download, comopodemos conferir a figura abaixo: Lista de pacotes disponíveis para download 15
  16. 16. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresVamos cancelar a instalação dos pacotes acima clicando nobotão “Cancel”, pois, não iremos instalar tudo. Feito isso vocêirá visualizar a seguinte caixa de diálogo abaixo: Caixa de diálogo – Installed packagesPrecisamos agora instalar a plataforma Android através destacaixa de diálogo. Clique na seção “Avaiable packages” paravisualizar todos os recursos disponíveis para instalação. Feitoisso expanda a opção “Android Repository” e automaticamentevocê verá os recursos disponíveis para download como vocêpode conferir na figura abaixo:16
  17. 17. Luciano Alves da Silva Caixa de diálogo - Available PackagesNós iremos trabalhar aqui neste livro com a plataforma Android2.1 API 7, revision 2. Então vamos marcar a opção “SDKPlatform Android 2.1, API 7, revision 2” e em seguida vamosclicar no botão “Install Selected”, você verá a seguinte caixa dediálogo abaixo: Preparando para Instalar o Android 17
  18. 18. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresVamos proceder com a instalação clicando no botão “Install”.Feito isso a plataforma Android 2.1 será instalada, conformedemonstra a figura abaixo Instalação do Android em processoDepois de concluída a instalação do Android será mostrada umamensagem pedindo que o ADB seja reiniciado, como demonstraa figura abaixo: Mensagem solicitando para reiniciar do adbClique em “Yes” para reiniciar a ADB, e o resultado você podeconferir na figura abaixo.18
  19. 19. Luciano Alves da Silva Instalação do Android concluídaUma etapa concluída. Agora vamos instalar o Eclipse com oplugin do Android. Para instalar o Eclipse simplesmentedescompacte-o em um local apropriado, de preferência no drive“C:”. Depois disso copie para o drive “C:” o plugin do Android“ADT-10.0.1.zip”. Feito isso vamos executar o Eclipse. Com oEclipse aberto na no menu “Help” / “Install New Software”,como mostra a figura abaixo: Install New Software 19
  20. 20. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresAo fazer esse procedimento será aberta uma tela conformemostra a figura abaixo: Caixa de diálogo - InstallPara instalarmos o plugin do Android clique no botão “Add”, eserá exibida uma caixa de diálogo conforme mostra a figuraabaixo:20
  21. 21. Luciano Alves da Silva Caixa de diálogo - Add SiteAgora vamos clicar no botão “Archive” e iremos procurar eselecionar o plugin do Android “A.D.T-10.0.1.zip”. Preencha ocampo “Name” como mostra a figura abaixo: Caixa de diálogo - Add SiteAo clicar em “OK” será mostrada uma tela, conforme demonstraa figura seguinte: 21
  22. 22. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Caixa de Dialogo - InstallAgora expanda o item “Developer Tools” e marque todas asopções, conforme mostra a figura seguinte:22
  23. 23. Luciano Alves da Silva Caixa de Dialogo - InstallApós fazer isso clique no botão “Next”, e em seguida serámostrada a próxima tela, conforme demonstra a figura abaixo: 23
  24. 24. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Caixa de Dialogo - InstallAgora, clique no botão “Finish”. Após isso ocorrerá algunsprocessos, como demonstra a figura abaixo, aguarde atéterminar. Instalando do Android no Eclipse24
  25. 25. Luciano Alves da SilvaSe em algum momento durante o processo for exibida a figuraabaixo: Caixa de mensagemPode clicar em “OK” sem problemas, e o processo secompletará. Após o termino do processo você deve reiniciar oEclipse, clicando em “Yes”, na mensagem abaixo: Caixa de mensagemApós o Eclipse ter reiniciado, vamos fazer agora asconfigurações para fazer conexão com o emulador do Android.Vamos no menu “Window” / “Preferences”. Aberta a caixa dediálogo, selecione o item “Android” e será mostrada uma tela,conforme demonstra a figura seguinte: 25
  26. 26. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Caixa de diálogo - PreferencesAgora você vai selecionar o diretório onde se encontra oAndroid, que aqui no meu computador, o Android se encontrainstalado em “C:android-sdk-windows”, logo, terei queselecionar essa pasta. Feito isso basta clicar em “OK”.Para finalizar vamos definir um dispositivo virtual, conhecidocomo AVD (Android Virtual Device), onde nossas aplicaçõesdaqui para frente serão executadas. Para isso, vá no menu“Windows” / “Android SDK and AVD Manager”, conformemostra a figura abaixo:26
  27. 27. Luciano Alves da Silva Android SDK and AVD ManagerFeito o procedimento acima, será aberta uma tela conformemostra a figura abaixo: Caixa de diálogo - Virtual Settings 27
  28. 28. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresPara criarmos um dispositivo virtual clique no botão “New”, eserá aberta uma tela conforme mostra a figura abaixo: Caixa de diálogo - Crete new AVDDe inicio, vamos configurar o básico pra executarmos a nossaaplicação. Em “Name” você define o nome do AVD, vamoschamá-lo de “Emulador”.Em “Target” definirmos a plataforma-alvo a ser executada,neste caso só temos uma o “Android 2.1-update1 - API Level7”. Vamos selecioná-la.Em Skin na opção “Built-in” a opção padrão é “Default(WVGA800)”. Vamos mudar essa opção para “HVGA”.28
  29. 29. Luciano Alves da SilvaDepois de preencher todos os campos, a tela de criação do AVDdeve estar de acordo com a figura abaixo: Caixa de diálogo - Create new AVDPara criarmos nosso AVD, clique no botão “Create AVD” epronto. O resultado você confere na figura seguinte: 29
  30. 30. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores AVD Criado com sucessoAté aqui aprendemos a instalar e configurar a plataformaAndroid no Eclipse. Agora vamos dar nossos primeiros passosdesenvolvendo uma aplicação básica no Android.30
  31. 31. Luciano Alves da Silva3) Começando a programar no Google AndroidD epois de tudo configurado e instalado, vamos começar a desenvolver nossas aplicações no Android. Para isso, vamos criar um novo projeto Android indo no menu“File” / “New” / “Other”. Selecione o projeto Android conformefigura abaixo. Depois de selecionar, clique em “Next”: Criando um novo projeto Android no EclipseApós clicar em “Next” na figura acima, será exibida uma telaconforme figura abaixo: 31
  32. 32. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Criando um novo projeto Android no EclipseVamos preencher os campos citados abaixo:Project name : HelloWorldAndroidApplication name : Hello World AndroidPackage name: br.com.apphelloCreate Activity : AppHelloMin SDK Version : 732
  33. 33. Luciano Alves da SilvaOs campos preenchidos acima devem estar de acordo com afigura abaixo: Criando um novo projeto Android no EclipseDepois de tudo preenchido basta clicar no botão “Finish” epronto, nosso projeto foi criado. Em “Package Explorer”, vamosdar uma olhada na estrutura do projeto, simplesmente clicandono botão “+”, é só seguir a figura abaixo. Aproveite e abra oarquivo “AppHello.java” como também demonstra a figura: 33
  34. 34. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Visão geral de uma aplicação AndroidIrei descrever a estrutura de um projeto Android. Observem quedentro da pasta de projeto “HelloWorldAndroid” existe umapasta chamada “src”, e dentro dela é que ficam os códigos fontesdas aplicações. Observem que o arquivo “AppHello.java” seencontra dentro do pacote “br.com.apphello” (Esse pacotetambém é uma pasta). Esse arquivo é a nossa aplicação Android.Vou descrever em detalhes o arquivo “AppHello.java” (Veja ocódigo abaixo):package br.com.apphello;import android.app.Activity;import android.os.Bundle;public class AppHello extends Activity { /** Called when the activity is first created.*/34
  35. 35. Luciano Alves da Silva @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); } }Diferentemente das aplicações comuns em Java (J2SE), todaclasse para aplicação Android deve ser derivada da classeActivity (Atividade), e possui como método principal oonCreate. Dentro desse método ele invoca o método onCreateda super classe passando mesmo parâmetro (osavedInstanceState), logo após esse método, vem o métodosetContentView, responsável por exibir a tela da minhaaplicação baseado nos layouts “xml". Por padrão ele chama oarquivo “main.xml”.Dentro da pasta “HelloWorldAndroid” existe um diretóriochamado “res”, onde ficam armazenados todos os recursosutilizados pela aplicação. Dentro do diretório “res” existemcinco diretórios, cada um deles com uma finalidade quedescreverei agora:Os diretórios “drawable-hdpi”,”drawable-mdpi” e “drawable-ldpi”.A partir da versão 1.6 da plataforma Android foram adicionadostrês diretórios responsáveis pelo gerenciamento de imagens:“drawable-hdpi”, “drawable-ldpi”, “drawable-mdpi”. Qual adiferença de um para outro ? Cada um desses diretórios só seráutilizado de acordo com a resolução do Android em uso, ou seja,qual modelo de emulador de você estiver usando. Por exemplo,quando você usa uma resolução de 480x800 no seu emulador, é 35
  36. 36. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresutilizado o diretório “drawable-hdpi” para buscar a imagem quevai representar o ícone da sua aplicação Android. Se você forusar uma resolução 320x480 (que normalmente é a resoluçãopadrão do emulador Android), é utilizado o diretório “drawable-mdpi”. Se você usar uma resolução 240x400, é utilizado odiretório “drawable-ldpi”. O diretório “layout” armazena todos os layouts da aplicaçãoAndroid, que normalmente são arquivos “.xml”. Para quemconhece a combinação HTML + JavaScript, no Android ésimilar, é a combinação de XML + Java, logo, todos os nossoscomponentes vão ser adicionados usando tags XML. Por padrãoo arquivo de layout é o “main.xml”.Uma coisa interessante que existe nessa versão (e alguma dasanteriores do SDK) é a capacidade de você ter um “preview” decomo ficara a sua aplicação antes mesmo de você rodar oemulador Android, para confirmarmos isso, simplesmente vá nodiretório “res/layout” e de um duplo clique no arquivo“main.xml”, e você verá o seu preview conforme demonstra afigura seguinte:36
  37. 37. Luciano Alves da Silva Preview da aplicação AndroidPara visualizarmos o código do arquivo “main.xml”simplesmente clique na guia “main.xml”, que se encontra abaixoda seção “Views” como demonstra a figura seguinte: 37
  38. 38. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Preview da aplicação AndroidVeja o seu código abaixo:<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /></LinearLayout>38
  39. 39. Luciano Alves da SilvaObserve que após a primeira linha (prólogo xml), existe umatag chamada LinearLayout, responsável por organizar oscomponentes exibidos na tela, por padrão os componentes sãodistribuídos na vertical pelo atributoandroid:orientation="vertical".Dentro desta tag existe um componente chamado TextView,que representa um texto a ser exibido na tela que por padrão, jávem escrito a frase “Hello World, AppHello”, através doatributo android:text="@string/hello”, onde o valor“@string/hello” equivale a uma constante que está definida noarquivo “strings.xml”, que se encontra no diretório “values”,que iremos descrevê-lo agora. O diretório “values” armazena valores estáticos (constantes)que podem ser utilizados por um arquivo “.xml”. Normalmenteesses valores estáticos devem ser armazenados no arquivo“strings.xml”. Vá no diretório “res/values” e de um duplo cliqueno arquivo “strings.xml”, e será mostra o gerenciador dessearquivo conforme mostra a figura seguinte: 39
  40. 40. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Propriedades do arquivo “strings.xml”Observe que nas propriedades do atributo “hello” está atribuídoum valor a ela, que é o valor “Hello World, AppHello!”. Issoquer dizer que lá no arquivo XML no componente TextView,tem uma propriedade chama android:text, com o valor“@string/hello” , que equivale a na verdade a string “HelloWorld, AppHello!”. Para ver a sua estrutura , clique na guia“strings.xml”. O código desse arquivo é igual ao que demonstrao código abaixo:<?xml version="1.0" encoding="utf-8"?><resources> <string name="hello">Hello World,AppHello!</string> <string name="app_name">Hello WorldAndroid</string></resources>40
  41. 41. Luciano Alves da SilvaObservem que dentro desse arquivo eu declaro um valor estáticochamado “app_name”, cujo valor é “Hello World Android”.Dentro da pasta “HelloWorldAndroid” existe um arquivochamado “AndroidManifest.xml” Esse arquivo é o sistemanervoso de uma aplicação Android. É nele que ficam asdefinições referentes à aplicação. De um duplo clique nessearquivo para abri-lo, feito isso será mostrado o seu gerenciador,conforme mostra a figura abaixo: Propriedades do arquivo “AndroidManifest.xml”Bom, o que nos interessa aqui é o código. Para visualizarmosseu código clique na seção “AndroidManifest.xml”. Veja seucódigo abaixo: 41
  42. 42. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores<?xml version="1.0" encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android" package="br.com.android" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon"android:label="@string/app_name"> <activity android:name=".AppHello" android:label="@string/app_name"> <intent-filter> <actionandroid:name="android.intent.action.MAIN" /> <categoryandroid:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>Observem algumas tags interessantes. A tag <application>possui o atributo android:icon, no qual especifico o ícone daaplicação. Como havia citado anteriormente, todas as imagensficam no diretório “drawable” e nesse diretório existe umarquivo de chamado “icon.png” que será o ícone da minhaaplicação. Logo, para usar esse ícone neste atributo, deve-sepassar o valor “@drawable/icon” .Observem que quandoinformamos o ícone, ele deve ser informado sem a extensão(nesse caso, PNG).42
  43. 43. Luciano Alves da SilvaObservem agora a tag <activity>, ela define uma atividade(Activity). Dentro desta tag, eu possuo o atributo chamadoandroid:label que define o título da minha aplicação. O títuloque será exibido é o valor que está armazenado no valor estáticoapp_name. Isso é obtido pela atribuiçãoandroid:label="@string/app_name".Como havia falado a aplicação Android nada mais é do que acombinação Java + XML. Agora, como um código Java vaiacessar um componente que está escrito em XML ? Ah, essa é afinalidade do arquivo “R.java” (que fica dentro do pacote “gen”, situado no projeto), ele funciona como uma “interface” entre ocódigo Java e o código XML, logo, se eu quiser manipular emtempo de execução um componente via Java, tenho que fazerinterface com esse arquivo. Em breve vamos ver como.OBS: O arquivo “R.java” não pode ser modificadomanualmente. Ele é modificado automaticamente de acordo comas mudanças feitas no projeto.Agora iremos executar nossa aplicação. Vamos no menu “Run /Run Configurations”, conforme mostra a figura abaixo: “Run Configurations” 43
  44. 44. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Feito isso, será aberta uma caixa de diálogo com vários itens.Clique com o botão direito do mouse no item “AndroidApplication” e selecione a opção New, conforme a figuraabaixo: Criando um novo “Android Application”Feito isso, na propriedade “Name” ao lado digite “AppHello”.Em Project selecione o projeto que criamos em clicando nobotão “Browse”, com o nome de “HelloWorldAndroid”. E porúltimo, em “Launch Action”, deixe marcada a opção “LauchDefault Activity”. Qualquer dúvida siga a figura abaixo: Propriedades do “Android Application”44
  45. 45. Luciano Alves da SilvaAgora é só clicar em “Run” e rodar a aplicação. Quando oemulador Android é executado, possivelmente, poderá abrirjunto com ele uma caixa de dialogo, conforme a figura abaixo.Normalmente eu desmarco a opção “Send usage statistics toGoogle” e clico em “Proceed”. Caixa de diálogo do Android SDKPra você que está executando pela primeira vez o emulador doAndroid, vê que o emulador é uma espécie de SmartPhone.Lado esquerdo nós temos a tela do dispositivo e no lado direitotemos o teclado com suas funções, conforme mostra a figuraseguinte: 45
  46. 46. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Emulador do Android em ExecuçãoNo início da execução do emulador mostra o título Android,conforme você vê na figura acima. Depois vem um outro títuloescrito “Android”, com um titulo cinza em animação. Issodemora em torno de 2 a 10 minutos (dependendo da suamáquina. É recomendável que você tenha no mínimo 512 MBde memória e um processador bem rápido para um bomdesempenho da execução) para a aplicação ser exibida, mesmosendo essa aplicação algo muito simples.Passado o tempo que citei acima, será mostrada a nossaaplicação e também algumas mensagens, é só cancelá-las.Quando o emulador chegar nessa tela abaixo:46
  47. 47. Luciano Alves da Silva Emulador do Android em ExecuçãoClique no botão redondo com o titulo “MENU” paradesbloquear a tela e a aplicação continuará a processar até sercarregada com sucesso, conforme mostra a figura abaixo: 47
  48. 48. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Emulador do Android em ExecuçãoEsse emulador já vem com uma série de recursos comoNavegador, Aplicações de demonstração, Mapas, Lista decontatos e etc.Se você neste exato momento fechou o emulador após aexecução da aplicação, vou te dizer uma coisa: “Não era paravocê ter feito isso”. Se você esperou muito tempo para ver essaaplicação em execução, ao executar novamente a aplicação,você vai esperar o mesmo tempo. Ao executar pela primeira vezo emulador, e caso vá executar outros programas, minimize oemulador ao invés de fechar, pois se você esperou muito tempopara executar esse programa, com ele minimizado, ao executaroutro programa, o Eclipse vai fazer uso do emulador já aberto48
  49. 49. Luciano Alves da Silvaem vez de abrir outro, com isso a aplicação levará em torno de7 a 12 segundos em média para ser executada. Nunca esqueçaisso!Vamos modificar essa aplicação. Minimize o emulador e vamosabrir o arquivo “main.xml”. Na tag TextView que já haviaexplicado a vocês, possui um atributo chamado android:text,onde nele defino o título que será exibido, modifique agora essapropriedade com o seguinte valor (título), conforme o códigoabaixo: android:text="Fala cara, beleza ???"Feito isso, salve a aplicação e veja seu “preview”, clicando naseção “Graphical Layout”. Veja na figura abaixo: Preview da aplicação 49
  50. 50. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresVamos fazer mais uma outra modificação na nossa aplicação.Abra novamente o arquivo “main.xml”, observe que ele possuium TextView certo ? Vamos colocar mais dois componentesTextView, a primeira TextView, no atributo android:text teráo título “Primeira frase”, o segundo TextView terá o título“Segunda Frase” e assim sucessivamente. Veja como ficará ocódigo do arquivo “main.xml” :<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Primeira Frase." /><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Segunda Frase" /><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Terceira Frase???" /></LinearLayout>Feito isso, salve o arquivo e veja seu “preview”, comodemonstra a figura abaixo:50
  51. 51. Luciano Alves da Silva Preview da aplicaçãoE ai, está entendo aos poucos como se faz aplicações Android ?Com certeza que sim!Como podemos ver nessa versão do Android, ele já oferece umutilitário que permite a criação de aplicações de forma rápida,simplesmente arrastando e soltando os componentes. Issoacelera o processo de desenvolvimento de aplicações.Neste livro, vamos trabalhar no Android usando esse utilitárioque acelera o processo de desenvolvimento de aplicações, mas,em algumas ocasiões, faremos do modo tradicional, ou seja,digitar o código. Agora vamos aprofundar um pouco e fazer aplicações maisinteressantes com o uso dos Widgets (componentes) existentesna plataforma Android. 51
  52. 52. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores4) Conhecendo as widgets do AndroidT oda aplicação Android é constituída por widgets, que são componentes gráficos que constituem uma aplicação Android. A partir de agora iremos conhecer os widgetsbásicos que constituem a plataforma Android, para odesenvolvimento das aplicações. De acordo com alguns widgetsque fomos conhecendo, vamos desenvolver aplicações quedemonstrem o uso deles.4.1) A widget TextViewA widget TextView funciona como se fosse uma Label(“rotulo”), onde nele podemos mostrar alguma informação,mensagem e etc. Na nossa primeira aplicação tivemos aoportunidade de usarmos esse componente.4.2) A widget EditTextA widget EditText funciona como se fosse caixa onde podemosdigitar nela dados do teclado.4.3) A widget ButtonA widget Button nada mais é do que um Botão de comando ,que quando clicado, dispara uma ação, um evento.4.4) Desenvolvendo uma aplicação que soma númerosCom os componentes até agora vistos, já é possíveldesenvolvermos uma aplicação. Vamos criar agora uma52
  53. 53. Luciano Alves da Silvaaplicação que faça uso de um desses widgets. Crie um novoprojeto Android com os seguintes dados:Project Name: SomaNumerosPackage Name: br.com.appsomaCreate Activity: AppSomaApplication Name: Soma NúmerosMin SDK Version: 7Criado o projeto vamos no arquivo “main.xml” desse projeto ecomo havia mencionado, vamos agora fazer uso do utilitário queira nos ajudar a construir a nossa aplicação da forma rápida.Pelo nome do projeto, podemos ver que essa aplicação é umaaplicação de calculo. Essa aplicação vai ler dois númerosinteiros e no final, irá mostrar a soma deles, simples.Vamos no arquivo “main.xml” desse projeto e será carregado o“layout” dessa arquivo, como mostra a figura abaixo: 53
  54. 54. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Tela de layout da aplicação Primeiramente, antes de qualquer modificação noprograma, vamos mudar a resolução da visualização do layoutda nossa aplicação, para que esteja de acordo com a resoluçãodo emulador Android. Na opção onde está selecionada comopadrão “2.7in QVGA” , e vamos selecionar a opção “3.2inHVGA slider (ADP1)” (Essa será a resolução que passaremos atrabalhar daqui pra frente). Você verá que a resolução mudará ,como demonstra a figura abaixo:54
  55. 55. Luciano Alves da Silva Tela de layout da aplicaçãoAgora vamos fazer as modificações iniciais no programa.Observe que logo de início, ele mostra a frase “HelloWorld,AppSoma!” na widget TextView. Vamos carregar aspropriedades (Properties) dessa widget clicando com o botãodireito sobre ele e em seguida selecione o menu “Show in /Properties”, como você confere na figura seguinte: 55
  56. 56. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Tela de layout da aplicaçãoEm seguida as propriedades do componente se carregarão,conforme você pode conferir na figura abaixo:56
  57. 57. Luciano Alves da Silva Tela de layout da aplicação Agora vamos na guia “Properties” encontrar umapropriedade chamada “Text”, que indica o conteúdo assumidopelo componente TextView, que no caso é a frase “HelloWorld,AppHello!”. Depois de encontrar a propriedade Text,substitua o valor corrente pela frase “Digite o primeiro número”e depois disso, de ENTER. O resultado você confere na figuraabaixo: 57
  58. 58. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Tela de layout da aplicaçãoÓtimo, agora vamos inserir a widget EditText, que funcionacomo um campo para preenchermos com valores numéricos oualfanuméricos. Como vamos adicionar esse componente? Sevocê observar na figura acima, existe uma seção chamada“Form Widgets”, é nela onde ficam os componentes básicos queconstituem uma aplicação Android.Primeiramente, encontre o componente (widget) EditText,depois de encontrá-lo, simplesmente você vai clicar sobre ele earrastar até a tela do dispositivo, para adicioná-lo. O resultadovocê confere na figura abaixo:58
  59. 59. Luciano Alves da Silva Tela de layout da aplicaçãoBom, agora vamos modificar duas propriedades dessecomponente.Encontre a propriedade “id” do componente EditText e nelavocê vai inserir o valor “@+id/numero1”. Essa propriedadeserve para darmos um nome ao componente, caso ele sejatrabalhado no código Java. O nome de um widget deve estar nesse formato: “@+<nome>/<nome>” 59
  60. 60. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresSe observamos, o valor desse atributo é : “@+id/numero1”. Écomo se “id” representasse um grupo e “numero1” representasseo nome do componente. Você irá entender essa notação mais afrente.Depois disso, vamos na propriedade “Layout width”, que definea largura de um componente e iremos definir o valor“fill_parent”, que indica que o componente irá ocupar toda alargura do dispositivo.Para finalizar, vamos agora modificar a propriedade “Text“,deixando seu conteúdo em branco. O resultado você confere nafigura abaixo: Tela de layout da aplicação60
  61. 61. Luciano Alves da SilvaAgora você vai inserir, NA SEQUÊNCIA, os componentesTextView e EditText.Na segunda TextView, vamos inserir na propriedade “Text” afrase “Digite o segundo número”.Já na segunda EditText, vamos repetir os mesmosprocedimentos que fizemos na primeira EditText, sabendo-seque a diferença vai estar na propriedade “id” que assumirá ovalor “@+id/numero2”. Somente essa é a diferença, o resto étudo igual.Agora vamos inserir um componente chamado Button na nossaaplicação. Depois de inserido, modifique as propriedades abaixocom os seus respectivos valores:Button Propriedade Valor Layout width fill_parent Id @+id/btsomar Text SomarDepois de feito todas as alterações, o layout da aplicação deveestar de acordo com a figura abaixo: 61
  62. 62. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Tela de layout da aplicaçãoBom, agora vamos analisar o código produzido. Paravisualizarmos o código produzido, basta clicar na guia“main.xml” . O código produzido você confere abaixo:<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent"62
  63. 63. Luciano Alves da Silva android:layout_height="wrap_content"android:text="Digite o primeiro número"/><EditText android:layout_height="wrap_content"android:id="@+id/numero1"android:layout_width="fill_parent"></EditText><TextView android:id="@+id/TextView01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Digite o segundo número"></TextView><EditText android:layout_height="wrap_content"android:layout_width="fill_parent"android:id="@+id/numero2"></EditText><Button android:layout_height="wrap_content"android:layout_width="fill_parent"android:id="@+id/btsomar"android:text="Somar"></Button> </LinearLayout>Vamos analisar o código:Dentro da estrutura LinearLayout temos um componenteTextView, identificado pela tag <TextView......></TextView>.Dentro desse componente possuímos as propriedadesandroid:layout_width (Layout Width), que possui o valor“fill_parent” ; android:layout_height (Layout Height), quepossui o valor “wrap_content” ; android:text (Text) que possuio valor “Digite o primeiro número”.Em seguida temos o componente EditText, identificado pela tag<EditText......></EditText>. Dentro desse componentepossuímos as propriedades android:layout_width ,android:layout_height e android:id (Id) que possui o valor“@+id/ednumero1” (que equivale ao nome do componente). 63
  64. 64. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresA descrição acima da estrutura dos componentes e daspropriedades segue também para os componentes seguintes.Beleza, agora vamos abrir o código do arquivo“AppSoma.java”, para acessar via código Java os componentesque adicionamos via XML. Siga os passos aqui descritos paravocê ver como esse processo é feito. Após a linhaimport android.os.Bundle;Digite:import android.widget.*;import android.view.*;import android.app.*;Antes da linha:@OverrideDigite:EditText ednumero1,ednumero2;Agora vamos à explicação do código acima. Como você podever , os widgets também podem ser usados no nosso códigoJava. Se no código XML eu possuir um widget do tipo EditTextpara acessar esse componente pelo Java, é preciso fazer uso daclasse EditText. Cada widget no XML possui o seu respectivoem classe Java, logo, se possui um widget Button, para acessá-lo devo fazer uso da classe Button e assim vai.64
  65. 65. Luciano Alves da SilvaAgora, após a linha:setContentView(R.layout.main);Digite as seguintes linhas de código:ednumero1 = (EditText) findViewById(R.id.numero1);ednumero2 = (EditText) findViewById(R.id.numero2);Button btsomar = (Button)findViewById(R.id.btsomar);Agora vou explicar as linhas acima. A linha:ednumero1 = (EditText) findViewById(R.id.numero1);Faz referência ao primeiro EditText, através do métodofindViewById com o parâmetro “R.id.numero1”.Se lembra o nome da primeira EditText que está no códigoXML? Ela se chama “@+id/numero1”.Vamos entender. Observe que para fazer referência ao EditTextpelo método findViewById eu passei o parâmetro“R.id.numero1”. 65
  66. 66. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresJá na segunda linha, para fazer a referência à segunda EditText,cujo nome é “@+id/numero2”, pelo método findViewById,passei o parâmetro “R.id.numero2”.Como você pode ver, estou fazendo uso da classe R quefunciona como interface entre o código Java e o arquivo XML.O procedimento é o mesmo para o componente Button.Agora iremos adicionar um evento “Click”, no nosso Button,pois quando eu clicar no botão, ele deverá mostrar a soma dosnúmeros. Então, logo após a linha:Button btsomar = (Button)findViewById(R.id.btsomar);Insira o código abaixo: btsomar.setOnClickListener(newView.OnClickListener(){public void onClick(View arg0) {double num1 =Double.parseDouble(ednumero1.getText().toString());double num2 =Double.parseDouble(ednumero2.getText().toString()); double res = num1 + num2;AlertDialog.Builder dialogo = newAlertDialog.Builder(AppSoma.this);dialogo.setTitle("Aviso");dialogo.setMessage("Soma:" + res);dialogo.setNeutralButton("OK", null);dialogo.show();66
  67. 67. Luciano Alves da Silva } });Toda vez que eu clicar no botão ele irá mostrar o resultado dasoma na tela através de uma caixa de mensagem. Ótimo! Vamosexecutar a nossa aplicação? Para executar faça os mesmosprocedimentos que já mostrei. O resultado da execução dessaaplicação você vê na figura abaixo: Aplicação que soma números em execuçãoOBS: Provavelmente durante a execução da aplicação ao entrarcom um número, deve ter surgido no dispositivo um teclado 67
  68. 68. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresvirtual (como mostra a figura acima), para ocultar ele é sópressionar ESC.Irei descrever o código do evento “Click”. O métodosetOnClickLisneter serve para definir um evento de “Click” aum componente. Como parâmetro, criamos uma instância deOnClickListener e dentro dessa instância existe o métodochamado onClick, que será disparado toda vez que o botão forclicado.A linha:double num1 = Double.parseDouble(ednumero1.getText().toString());Cria uma variável chamada num1 e atribui a ela o valor que estácontido em num1. Eu faço uso do método parseDouble daclasse Double pois o conteúdo é uma String. Observem quechamo o método getText de ednumero1 para retornar oconteúdo. Diferente de muitos métodos de retorno String, essemétodo getText não retorna uma String, mais sim um tipochamado Editable. Por isso, chamei o método toString degetText para que me retornasse uma string. A descrição dapróxima linha e a mesma.O código abaixo:AlertDialog.Builder dialogo = newAlertDialog.Builder(AppSoma.this);dialogo.setTitle("Aviso");dialogo.setMessage("Soma:" + res);dialogo.setNeutralButton("OK",null);dialogo.show();68
  69. 69. Luciano Alves da SilvaÉ responsável por mostrar a soma na tela através da classeAlertDialog.Builder, responsável por criar caixas de diálogo eexibi-las.Muito bem, com esse conhecimento adquirido até agora, você játem capacidade para fazer uma aplicação básica em Android.4.5) A widget AutoCompleteTextViewA widget AutoCompleteTextView é uma widget baseada noEditText que possui um mecanismo “auto complete” , quefunciona como um mecanismo de busca de certas palavras deacordo com o que está sendo digitado no componente. Vamosdemonstrar o uso desse componente.Project Name: ExemploAutoCompleteTextViewPackage Name : br.com.appautocompleteCreate Activity: AppAutoCompleteApplication Name: Exemplo com AutoCompleteTextViewMin SDK Version: 7Depois de criar o projeto, carregue o layout do arquivo“main.xml” e em seguida selecione o componente TextView evamos na propriedade Text para alterar o texto dele com aseguinte frase “Digite o nome de um país”.Agora precisamos inserir o componente (widget)AutoCompleteTextView. Ele também se encontra na seção 69
  70. 70. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores“Form Widgets”. Muito provável que você não esteja vendoesse componente, então, como faço para visualizá-lo ? Observeque onde se encontra a guia “Properties” (Propriedades doscomponentes), existem outras guias como “Problems”,“Javadoc” e etc. Precisamos “minimizar essas guias parapodermos ver todas as widgets da seção “Form Widgets”. Paraminimizar essas guias , clique no botão localizado à direita bemdepois da guia “Properties”, no local indicado pela a figuraabaixo: Botão minimizarFeito isso você verá todos os componentes da seção “FormWidgets” inclusive o componente “AutoCompleteTextView”.Vamos inserir esse componente e em seguida mude suaspropriedades como demonstra a figura abaixo: Propriedade Valor Text Id @+id/ednomepais Layout_width fill_parentA tela da nossa aplicação terá que estar de acordo com a figuraabaixo:70
  71. 71. Luciano Alves da Silva Layout da aplicaçãoFeito isso vamos no arquivo “AppAutoComplete.java” e vamosadicionar o seguinte código abaixo:package br.com.appautocomplete;import android.app.Activity;import android.os.Bundle;import android.widget.*;public class AppAutoComplete extends Activity { /** Called when the activity is first created.*/ AutoCompleteTextView ednomepais; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); 71
  72. 72. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores ArrayAdapter<String> adapter = newArrayAdapter<String>(this,android.R.layout.simple_list_item_1, paises); ednomepais = (AutoCompleteTextView)findViewById(R.id.ednomepais); ednomepais.setAdapter(adapter); }private final String[] paises = new String[]{ "Afeganistão", "África do Sul", "Albânia","Alemanha", "Andorra","Angola", "Anguila","Antárctida" "Azerbaijão", "Baamas", "Bangladeche","Brasil", "Canadá", "Catar", "Cazaquistão", "Chade", "Chile","China","Chipre", "Clipperton Island", "Dhekelia", "Dinamarca", "Domínica", "Egipto", "Equador", "Eritreia", "Eslováquia", "Eslovénia", "Espanha", "Estados Unidos", "Grécia", "Gronelândia", "Ilhas Salomão", "Ilhas Turcas e Caicos", "Indonésia", "Irão", "Iraque"};} Vamos analisar alguns trechos de código abaixo. A linha : ArrayAdapter<String> adapter = newArrayAdapter<String>(this,android.R.layout.simple_list_item_1, paises);72
  73. 73. Luciano Alves da SilvaCria um objeto do tipo Array através da classe ArrayAdapter ecarregamos em seus parâmetros um vetor (array de Strings) pré-definido com o nome dos países chamado paises.A linha abaixo:ednomepais.setAdapter(adapter);Carrega o vetor no componente através do método “setAdapter”.E na linha seguinte:private final String[] paises = new String[]{....}Havíamos definido o array de Strings paises onde nele estãodefinidos os países onde alguns deles serão exibidos durante oprocesso de sugestão do componente.Bom, agora vamos rodar a nossa aplicação. Veja como ficou nafigura seguinte: Demonstração do uso AutoCompleteTextView 73
  74. 74. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores4.6) A widget CheckBoxA widget CheckBox funciona como um componente que podeser marcado e desmarcado, e que possui também um rótulo.4.7) Desenvolvendo uma aplicação simples de comprasVamos fazer uma outra aplicação Android que vai fazer uso dawidget CheckBox, que acabamos de conhecer acima. Nossaaplicação consiste em um simples sistemas de compras ondepossuo cinco produtos, Arroz (R$ 2,69) , Leite (R$ 5,00) , Carne(R$ 10,00), Feijão (R$ 2,30) e Refrigerante coca-cola (R$ 2,00).Nessa aplicação eu marco os itens que quero comprar e no finalo sistema mostra o valor total das compras.Bom, vamos criar um novo projeto chamadoSistemaDeCompras. Siga os dados do projeto abaixo:Project Name: SistemaDeComprasPackage Name : br.com.appcompraCreate Activity: AppCompraApplication Name: Sistema de ComprasMin SDK Version: 7Vamos no arquivo “main.xml” desse projeto para carregarmosseu layout. Depois de carregado, modifique o valor da74
  75. 75. Luciano Alves da Silvapropriedade Text da TextView com a frase “Escolha seuproduto”. Feito isso, adicione os seguintes componentes, nasequência:CheckBox Propriedade Valor Text Arroz (R$ 2,69) Id @+id/chkarrozCheckBox Propriedade Valor Text Leite (R$ 5,00) Id @+id/chkleiteCheckBox Propriedade Valor Text Carne (R$ 9,70) Id @+id/chkcarneCheckBox Propriedade Valor Text Feijão (R$ 2,30) Id @+id/chkfeijao 75
  76. 76. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresButton Propriedade Valor Text Total das compras Id @+id/btotal Layout_width fill_parentAo final, o layout da nossa aplicação deve estar de acordo com afigura seguinte: Layout da tela da aplicaçãoAgora vamos modificar o arquivo “AppCompra.java“. O códigodesse arquivo será como o código que é exibido abaixo:76
  77. 77. Luciano Alves da Silvapackage br.com.appcompra;import android.app.AlertDialog;import android.os.Bundle;import android.widget.*;import android.view.*;import android.app.*;public class AppCompra extends Activity { CheckBox chkarroz,chkleite,chkcarne,chkfeijao; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); chkarroz = (CheckBox) findViewById(R.id.chkarroz); chkleite = (CheckBox) findViewById(R.id.chkleite); chkcarne = (CheckBox) findViewById(R.id.chkcarne); chkfeijao = (CheckBox) findViewById(R.id.chkfeijao); Button bttotal = (Button)findViewById(R.id.bttotal); bttotal.setOnClickListener(newView.OnClickListener(){public void onClick(View arg0) { 77
  78. 78. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores double total =0; if(chkarroz.isChecked()) total += 2.69; if(chkleite.isChecked()) total += 5.00; if(chkcarne.isChecked()) total += 9.7; if(chkfeijao.isChecked()) total += 2.30;AlertDialog.Builder dialogo = newAlertDialog.Builder(AppCompra.this);dialogo.setTitle("Aviso"); //Defino o títulodialogo.setMessage("Valor total da compra :" +String.valueOf(total)); //colocando a mensagem quevai ter dentro do Dialogdialogo.setNeutralButton("OK", null); //adicionandoo botão de OKdialogo.show(); //mostrando o Dialog } }); }}Descrevendo o código do método onClick : Dentro do métodoeu crio uma variável chamada total que armazena o valor totalda compra. Observe que eu tenho quatro estruturas if’s onde78
  79. 79. Luciano Alves da Silvacada uma verifica se um determinado item foi marcado, se foi,incrementa o valor do item com o valor da variável total. Nofinal mostro valor total das compras na tela.Vamos roda nossa aplicação? O resultado você confere na figuraseguinte: Aplicação simples de compras em execução 79
  80. 80. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores4.8) A widget RadioButtonA widget RadioButton é um componente muito utilizado emopções de múltipla escolha, onde somente uma única opçãopode ser selecionada.4.9) Desenvolvendo uma aplicação de cálculo de salário(Com RadioButton)Bom, agora vamos fazer uma outra aplicação. Essa aplicaçãoque vamos desenvolver agora consiste em um sistema que vailer o salário de um funcionário e vai permitir que você escolha oseu percentual de aumento que pode ser de 40% , 45% e 50% eno final o sistema irá mostrar o salário reajustado com o novoaumento.Bom, vamos lá! Crie um novo projeto Android com os seguintesdados:Project Name: CalculoDeSalarioPackage Name : br.com.appsalarioCreate Activity: AppSalarioApplication Name: Cálculo do salárioMin SDK Version: 780
  81. 81. Luciano Alves da SilvaNessa primeira versão da aplicação, como havia falado, vamosfazer uso da widget RadioButton.Carregado o arquivo “main.xml”, modifique a propriedade Textda TextView com a frase “Digite seu salário (R$)”. Em seguidaadicione os seguintes componentes, na sequência :EditText Propriedade Valor Text Id @+id/edsalario Layout_width fill_parentTextView Propriedade Valor Text Qual é o seu percentual ?Seguindo os passos acima ate aqui, a aplicação deve estar deacordo com o dá figura abaixo: 81
  82. 82. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Tela de layout da aplicação Cálculo de salárioBom, agora vamos adicionar um componente ou melhor, umaestrutura que será responsável por agrupar as RadioButtonsdentro dela, que se chama RadioGroup. Nesta versão doAndroid o RadioGroup já oferece por padrão trêsRadioButtons, que é quantidade necessária para a nossaaplicação. Essa estrutura também se encontra dentro da seção“Form Widgets” e para adicionar este componente nodispositivo, simplesmente clique e arraste ele até a tela dodispositivo. O resultado você confere na figura abaixo:82
  83. 83. Luciano Alves da Silva Estrutura RadioGroup inseridaCom o RadioGroup selecionado, modifique as propriedadesabaixo: Propriedade Valor Layout Width fill_parent Id @+id/rgopcoesObserve que dentro do RadioGroup existem três RadioButtons,cada uma telas identificada por um nome. Se você observar noEclipse, à direita da tela da aplicação, existe uma seção chamada“Outline” onde nela posso visualizar toda a estrutura dos 83
  84. 84. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedorescomponentes que estão na minha aplicação. Confira na figuraabaixo: Guia “Outline”Agora modifique as propriedades das RadioButons de acordocom as indicações abaixo:radio0 Propriedade Valor Text 40% Id @+id/rb40radio184
  85. 85. Luciano Alves da Silva Propriedade Valor Text 45% Id @+id/rb45radio2 Propriedade Valor Text 50% Id @+id/rb50Agora, vamos adicionar uma Button, simplesmente clicando earrastando o componente na tela. Agora um detalhe, é paracolocar esse componente na tela do dispositivo mas FORA daárea do RadioGroup.Depois de colocar o Button, modifique as propriedades abaixo: Propriedade Valor Text Calcular novo salário Id @+id/btcalcular Layout_width fill_parentDepois de inserir todos os componentes citados, o layout daaplicação deve ficar de acordo com a figura abaixo: 85
  86. 86. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Layout da tela da aplicaçãoVamos analisar agora parte de um trecho de código produzido.Como havia falado acima, as RadioButtons precisam ficardentro de uma estrutura chamada RadioGroup certo ? Vamosver como isso é estruturado dentro de um código XML, comovocê confere abaixo:<RadioGroup android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"android:id="@+id/rgopcoes"><RadioButton android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="40%"android:checked="true"android:id="@+id/rb40"></RadioButton><RadioButton android:layout_width="wrap_content"android:layout_height="wrap_content"86
  87. 87. Luciano Alves da Silvaandroid:text="45%"android:id="@+id/rb45"></RadioButton><RadioButton android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="50%"android:id="@+id/rb50"></RadioButton></RadioGroup>Observe acima que logo após a definição da estruturaRadioGroup, existe dentro dela as RadioButtons, que serãoutilizadas na aplicação.No arquivo “AppSalario.java”, coloque o código abaixo:package br.com.appsalario;import android.app.Activity;import android.os.Bundle;import android.widget.*;import android.view.*;import android.app.*;public class AppSalario extends Activity { @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btcalcular = (Button) 87
  88. 88. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores findViewById(R.id.btcalcular); btcalcular.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) { double salario, novo_sal; EditText edsalario = (EditText) findViewById(R.id.edsalario); salario = Double.parseDouble (edsalario.getText().toString()); RadioGroup rg = (RadioGroup) findViewById(R.id.rgopcoes); int op = rg.getCheckedRadioButtonId(); if(op==R.id.rb40) novo_sal = salario + (salario * 0.4); else if(op==R.id.rb45) novo_sal = salario + (salario * 0.45); else novo_sal = salario + (salario * 0.5); AlertDialog.Builder dialog = new AlertDialog.Builder(AppSalario.this); dialog.setTitle("Novo salário");88
  89. 89. Luciano Alves da Silva dialog.setMessage("Seu novo salário é : R$" + String.valueOf(novo_sal)); dialog.setNeutralButton("OK", null); dialog.show(); } }); } }Vamos à explicação de alguns códigos interessantes. Dentro dométodo onClick, eu realizo o cálculo do novo salário dofuncionário. Os primeiros códigos do evento são similares deprogramas anteriores que já foram devidamente explicados. Alinha:int op = rg.getCheckedRadioButtonId();Cria uma variável op e retorna para ela o Id da opçãoselecionada, ou seja, qual RadioButton foi selecionada.Agora na condição:if(op==R.id.rb40)Verifico se a opção de 40% foi selecionada, se estiver, realiza ocálculo do salário com o reajuste de 40%. A mesma explicação e 89
  90. 90. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresválida para o cálculo dos outros reajustes. Agora vamos executara nossa aplicação. O resultado você vê na figura abaixo: Aplicação de cálculo de salário em execução4.10) A widget SpinnerA widget Spinner é um componente do tipo caixa decombinação (“ComboBox”) onde nele é armazenado váriositens a serem selecionados. Para que um componente possa serselecionado, é preciso clicarmos na seta , para que os itenspossam ser mostrados e , por consequência, serem selecionados.90
  91. 91. Luciano Alves da Silva4.11) Desenvolvendo uma aplicação de cálculo de salário(Com Spinner)Bom, agora vamos criar a nossa segunda versão do aplicativoacima, usando agora o componente Spinner. Crie um novoprojeto Android com os seguintes dados:Project Name: CalculoDeSalarioSpinnerPackage Name : br.com.appsalariospinnerCreate Activity: AppSalarioApplication Name: Cálculo do salárioMin SDK Version: 7Nessa segunda versão da aplicação, vamos fazer uso da widgetSpinner. Carregue o arquivo “main.xml” e faça os mesmosprocedimentos do programa anterior, só que ao invés deadicionar a RadioGroup com os RadioButtons, você vai inserirsomente um componente Spinner. Segue abaixo aspropriedades do Spinner que você precisa modificar: Propriedade Valor Id @+id/spnopcoes Layout_width fill_parentSeguindo os passos, a aplicação deve estar de acordo com afigura abaixo: 91
  92. 92. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Tela de layout da aplicaçãoAgora no arquivo “AppSalario.java”, coloque o seguinte código:package br.com.appsalariospinner;import android.app.Activity;import android.os.Bundle;import android.widget.*;import android.view.*;import android.app.*;public class AppSalario extends Activity { private static final String[] percentual ={"De 40%","De 45%","De 50%"}; ArrayAdapter<String> aPercentual; Spinner spnsal;92
  93. 93. Luciano Alves da Silva @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btmostrar = (Button) findViewById(R.id.btcalcular); aPercentual = newArrayAdapter<String>(this,android.R.layout.simple_spinner_item, percentual); spnsal = (Spinner)findViewById(R.id.spnopcoes); spnsal.setAdapter(aPercentual); btmostrar.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) { double salario=0, novo_sal = 0; EditText edsalario = (EditText)findViewById(R.id.edsalario); salario =Double.parseDouble(edsalario.getText().toString()); switch(spnsal.getSelectedItemPosition()) { case 0: novo_sal = salario + (salario *0.4); break; 93
  94. 94. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores case 1: novo_sal = salario + (salario *0.45); break; case 2: novo_sal = salario + (salario *0.5); break; } AlertDialog.Builder dialogo = newAlertDialog.Builder(AppSalario.this); dialogo.setTitle("Novo salário"); dialogo.setMessage("Seu novo salário é : R$"+ String.valueOf(novo_sal)); dialogo.setNeutralButton("OK", null); dialogo.show(); } }); } }Observando o código do programa acima, podemos ver que eleé similar o da primeira versão do aplicativo, porém, querocomentar alguns códigos interessantes desta aplicação. Observeque foi necessário declarar um “array” de “String” chamadopercentual, conforme mostra o código abaixo: private static final String[] percentual ={"De 40%","De 45%","De 50%"};Este “array” possui três elementos, correspondentes aopercentual do aumento do salário. Também foi necessário94
  95. 95. Luciano Alves da Silvadeclarar um objeto do tipo ArrayAdapter chamadoaPercentual. Esse objeto serve para fazer referencia ao “array”percentual. Dentro do método OnCreate, existe uma linha decódigo abaixo: aPercentual = newArrayAdapter<String>(this,android.R.layout.simple_spinner_item, percentual);Que cria uma instância da classe ArrayAdapter e atribuo essainstância ao objeto aPercentual, onde carrego nele o “array” deStrings percentual. Logo depois, vem a instrução: spnsal.setAdapter(aPercentual);Onde carrego no objeto do tipo Spinner uma lista de opções depercentual.Vamos agora dentro do evento OnClick do objeto Button.Dentro existe o código mostrado abaixo: switch(spnsal.getSelectedItemPosition()) { case 0: novo_sal = salario + (salario *0.4); break; case 1: novo_sal = salario + (salario *0.45); break; case 2: novo_sal = salario + (salario *0.5); break; }Que verifica qual será o novo salário , de acordo com a opçãoselecionada no objeto Spinner. Vamos entender esse código.Observe que o objeto spnsal, possui um método chamadogetSelectedItemPosition, que é responsável por retornar o 95
  96. 96. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresíndice do item selecionado, sabendo se que o primeiro itempossui índice zero, o segundo possui índice um e assim pordiante. Observe que dentro dessa estrutura eu verifico a opçãoselecionada, se for a primeira, o novo salário terá aumento de40%, se for a segunda , o aumento será de 45% senão, oaumento será de 50%.Logo após o cálculo do novo salário, é exibido na tela o novosalário.Vamos executar a nossa aplicação. O resultado da execuçãovocê confere na figura abaixo:Aplicação de cálculo de salário usando Spinner em execução96
  97. 97. Luciano Alves da Silva4.12) A widget ListViewA widget ListView é um componente que possui vários itens aserem selecionados, similar ao componente Spinner. A únicadiferença entre o ListView e o Spinner é que no componenteListView os itens já são mostrados sem nenhuma necessidadede se clicar em alguma parte dele para que os mesmos possamser mostrados.4.13) Desenvolvendo uma aplicação de lista telefônicaAgora vamos fazer uma nova aplicação em Android. Essaaplicação consiste em uma lista telefônica já pronta comcontatos. Quando selecionamos um contato, ele mostra na telauma mensagem com o nome selecionado. A nossa aplicação vaifazer uso do widget chamado ListView, que exiba uma listacontendo valores que podem ser selecionados.Bom, vamos criar um novo projeto. Siga os dados abaixo:Project Name: ListaTelefonicaPackage Name : br.com.applistaCreate Activity: AppListaApplication Name: Lista de contatosMin SDK Version: 7Vamos no layout do nosso arquivo “main.xml” e vamosmodificar o conteúdo na TextView, com a frase : “Escolha um 97
  98. 98. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedorescontato”. Depois disso, vamos inserir um ListView (que seencontra na guia “Composite”) e depois iremos modificar suaspropriedades, conforme abaixo: Propriedade Valor Id @+id/lstcontatos Layout_width fill_parentA aplicação depois de feito todos os passos acima, deve estar deacordo com a figura abaixo: Layout da tela da aplicaçãoNo arquivo AppList.java, coloque o seguinte código:package br.com.applista;import android.app.Activity;98
  99. 99. Luciano Alves da Silvaimport android.app.AlertDialog;import android.os.Bundle;import android.widget.*;importandroid.widget.AdapterView.OnItemClickListener;import android.view.*;public class AppLista extends Activity { public ListView lista; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); ArrayAdapter<String> adapter = newArrayAdapter<String>(this,android.R.layout.simple_list_item_1, contatos); lista = (ListView)findViewById(R.id.lstcontatos); lista.setAdapter(adapter); lista.setOnItemClickListener(newOnItemClickListener(){ public voidonItemClick(AdapterView parent, View view, intposition, long id) { AlertDialog.Builder dialogo = newAlertDialog.Builder(AppLista.this); dialogo.setTitle("Contato selecionado"); dialogo.setMessage(((TextView)view).getText().toString()); dialogo.setNeutralButton("OK", null); 99
  100. 100. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores dialogo.show(); } }); } static final String[] contatos = new String[] {"Alline","Lucas","Rafael","Gabriela","Silvana" };}Vamos analisar alguns códigos acima. A linha: static final String[] contatos = new String[] {"Alline","Lucas","Rafael","Gabriela","Silvana" };Cria uma constante chamada contatos, onde nela coloco algunsnomes. Essa constante vai ser utilizada pela nossa lista. Para queeu possa carregar dos dados em uma ListView, preciso fazeruso da classe ArrayAdapter, como mostra a instrução abaixo:100
  101. 101. Luciano Alves da SilvaArrayAdapter<String> adapter = newArrayAdapter<String>(this,android.R.layout.simple_list_item_1, contatos);A instrução mostrada acima cria uma instância da classeArrayAdapter chamada adapter onde carrego nela o vetor deStrings da constante contatos. A instrução: lista.setAdapter(adapter);Carrega os valores para a ListView, que está contido o objetoadapter.Como havia falado, quando se clica em um item, o sistemamostraria uma mensagem do item selecionado. Isso éconseguido fazendo uso da interface OnItemClickListener,como mostra a instrução abaixo: lista.setOnItemClickListener(newOnItemClickListener(){ public void onItemClick(AdapterView parent,View view, int position,long id) { AlertDialog.Builder dialogo = newAlertDialog.Builder(AppLista.this); dialogo.setTitle("Contato selecionado"); dialogo.setMessage(((TextView) view).getText().toString()); dialogo.setNeutralButton("OK", null); dialogo.show(); 101
  102. 102. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores });Toda vez que clicarmos em um item da lista, o métodoonItemClick será disparado e será executado o comandoabaixo: AlertDialog.Builder dialogo = newAlertDialog.Builder(AppLista.this); dialogo.setTitle("Contato selecionado"); dialogo.setMessage(((TextView) view).getText().toString()); dialogo.setNeutralButton("OK", null); dialogo.show();Que exibe o nome do item selecionado. O item selecionado estáem um objeto View, que precisa ser convertido para um objetodo tipo TextView, para que o método getText possa serinvocado retornando em uma String o item selecionado .Vamos executar a aplicação. O resultado você vê na figuraabaixo:102
  103. 103. Luciano Alves da Silva Aplicação de lista de contatos em execução4.14) A widget ImageviewA widget ImageView é um componente que permite quevisualizemos imagens dentro dele. As imagens suportadas poresse componente são imagens no formato JPEG, GIF e PNG.4.15) Desenvolvendo uma aplicação que visualiza imagens(Com ImageView)Agora vamos desenvolver uma aplicação que visualiza imagens,usando o componente ImageView. 103
  104. 104. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresAgora crie um novo projeto conforme os dados abaixo:Project Name: VisualizadorDeImagensPackage Name : br.com.appimagemCreate Activity Name: AppImagemApplication Name: Visualizador de ImagensMin SDK Version: 7Antes de iniciarmos a codificação do programa, quero que vocêcoloque duas imagens JPEG (com a extensão .jpg), dentro dapasta “res/drawable-mdpi” (para esse projeto usei duas imagenschamadas “foto1.jpg” e “foto2.jpg”). Para importar um arquivo,clique com o botão direito do mouse sobre a pasta“res/drawable-mdpi” e selecione “Import”, depois selecione FileSystem (Que se encontra dentro da pasta “General”). Clique nobotão browser para selecionar o diretório onde se encontram asimagens, depois de selecionado, marque os dois arquivos(imagens) para que eles sejam importados para a pasta“res/drawable-mdpi” . Veja a figura abaixo:104
  105. 105. Luciano Alves da Silva Importando imagens para aplicaçãoDepois disso, é só clicar em “Finish”.Agora no layout do arquivo “main.xml” apague o componenteTextView que se encontra na tela do dispositivo. Feito isso, sigaos passos abaixo para construirmos a nossa aplicação.Vamos adicionar dentro da tela da nossa aplicação uma estruturaLinearLayout (que se encontra na guia “Layouts”)simplesmente arrastando o componente para a tela da aplicação.O resultado você confere na figura abaixo: 105
  106. 106. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Estrutura LinearLayout inseridaAgora nessa estrutura LinearLayout que inserimos, vamosmodificar a seguinte propriedade abaixo: Propriedade Valor Orientation horizontalLogo após a alteração da propriedade, a estrutura LinearLayoutque inserimos “perdeu foco”. Se você clicar novamente no localonde você inseriu estrutura é muito provável que você nãoconsiga selecioná-lo (isso normalmente acontece com essaestrutura) . Para solucionar esse problema simplesmenteselecione esta estrutura pela guia “Outline”, como demonstra afigura abaixo:106
  107. 107. Luciano Alves da Silva Selecionando a estrutura LinearLayoutAgora dentro da estrutura LinearLayout que configuramosacima, vamos inserir o componente ImageView (que seencontra na guia “Images & Media”), e em seguida mude asseguintes propriedades: ImageView Propriedade Valor Id @+id/imagem Src @drawable/foto1Bom antes de prosseguir, quero explicar a propriedade “Src”.Nessa propriedade definimos a imagem corrente que iráaparecer na tela que é especificada pela notação“@drawable/foto1” (lembre-se que uma das imagens queutilizei para o projeto chama-se “foto1.jpg”), irei explicar essanotação. 107
  108. 108. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedoresSe você notou, quando importamos as duas imagens que seriamutilizadas pelo nosso programa, essas imagens ficaram dentro dodiretório “drawable-mdpi” certo ? Porém, quando especificamospela propriedade “Src” o nome do diretório das imagens sempreserá “@drawable”. Outro detalhe: Quando especificamos onome do arquivo de imagem, o nome do arquivo não pode ter aextensão dele, isso é regra.TextView Propriedade Valor Id @+id/txtinfo Text Foto 1Seguindo os passos acima, o resultado do layout deve ficar deacordo com a figura abaixo: Layout da aplicação108
  109. 109. Luciano Alves da SilvaAgora vamos colocar na sequência dois Buttons, só que essesdois componentes vão estar dentro da tela da aplicação , ou seja, da estrutura principal. Segue abaixo as propriedades queprecisam ser modificadas:Button1 Propriedade Valor Id @+id/btimagem1 Text Exibir foto 1 Layout_width fill_parentButton2 Propriedade Valor Id @+id/btimagem2 Text Exibir foto 2 Layout_width fill_parentDepois de seguir todos os passos descritos acima, a aplicaçãotem que estar de acordo com a figura abaixo: 109
  110. 110. Aprenda passo a passo a programar em Android - Guia essecial para desenvolvedores Layout da aplicaçãoAgora no arquivo “AppImage.java” coloque o código abaixo:package br.com.appimagem;import android.app.Activity;import android.os.Bundle;import android.view.*;import android.widget.*;public class AppImagem extends Activity { ImageView imagem; TextView txt; @Override110

×