Curso de Android_Jogos

download Curso de Android_Jogos

of 127

Transcript of Curso de Android_Jogos

  • 7/30/2019 Curso de Android_Jogos

    1/127

    Curso de Android

    Captulo 1 Leia Primeiro

    Como usar este material

    Bem vindo, Aluno! Voc est comeando o Curso de Programao para Celular e Tablet

    Android, criado por Bruno Nardini.

    O primeiro passo aprender como usar este material para melhor aproveitamento do

    contedo.

    As informaes a seguir so um padro para organizar o material e deix-lo mais prtico. No

    se preocupe em decorar esse padro, pois intuitivo e voc ir se acostumar

    automaticamente durante a utilizao das apresentaes.

    O fluxo da apresentao ser atravs do click do mouse na tela, ento a cada clique um textonovo ir aparecer, ou uma imagem, ou passar para o prximo passo, ou qualquer interao

    at chegar no final do captulo.

    Tome cuidado para no avanar sem ter visto todo o contedo da tela, ento use SEMPRE o

    click do mouse na tela para acompanhar o material.

    Que tal comear agora? Clique nesta tela!

    O padro para os textos deste material :

    Hiperlinks estaro sublinhados

    Partes importantes estaro enfatizadas em negrito Termos tcnicos estaro em itlico

    Esses podem estar juntos. Exemplo:

    O throw diferente do throws, cada um tem sua.

    Alm de a frase ser importante, throwe throws so termos tcnicos.

    Em alguns textos haver diferentes hiperlinks com diferentes propsitos, os quais so:

    Links Internos So links para outros lugares do material. Exemplo: para pular ou voltar um

    captulo; fazer referncia a um material auxiliar como um cdigo;

    Informaes So informaes extras para completar o que foi dito. Exemplo: explicar a

    definio de um termo tcnico; dar exemplos do que foi explicado; uma curiosidade sobre o

    assunto;

    Avisos So avisos ou lembretes importantes. Exemplo: algo que voc no pode fazer; lembrar

    a definio que j foi avisado; reforar uma informao importante;

    Links Externos So links para contedos fora do material. Exemplo: referncia a sites;referncia a download; referncia a autores.

  • 7/30/2019 Curso de Android_Jogos

    2/127

    Est disponvel junto com material os exemplos utilizados na apresentao.

    No final de cada captulo voc poder fazer exerccios para fixar seus conhecimentos.

    Voc aprender fazer tambm avaliaes para testar o seu aprendizado. As avaliaes so

    importantes para tirar o certificado no final do curso.

    Siga a ordem exata de cada captulo, para que no se perca e prejudique seu aprendizado.

    O contedo foi feito de forma bem didtica e simples para que voc tenha o mximo de

    aproveito. Apesar de um material srio, alguns toques de humor foi acrescentado para

    descontrair um pouco, j que todo contedo passado por texto.

    Tudo deveria se tornar o mais simples possvel, mas no simplificado (Albert Einstein)

    As dvidas em relao ao ambiente Brava Curso so respondidas pelo prprio Help Desk da

    Brava Cursos.

    Bom Estudo !

    Contedo Programtico

    Captulo 1 LEIA PRIMEIRO

    Como usar este materialCaptulo 2 Conceitos e definies

    Introduo Verses Android API Level Android SDK

    Captulo 3 Instalao

    Introduo IDE ADT

    Captulo 4 Ol Mundo

    Ol Mundo AVD Emulando o Aplicativo

    Captulo 5 Projeto Android

    Introduo Estrutura Principal Recursos Android Manifest

  • 7/30/2019 Curso de Android_Jogos

    3/127

    Projeto EclipseCaptulo 6 Componentes

    Layout XML Paleta de Componentes Trabalhando com os Componentes

    Captulo 7 Telas

    Activity Navegando entre Telas Contextos Ciclo de Vida

    Captulo 8 Layout

    Layout Linear Layout Relativo Layout de Tabela Layout em Grade Layout Reaproveitvel

    Captulo 9 Formulrios

    Campos de Texto Mensagem Seleo nica Seleo Mltipla Boto de Ativao Auto Complete Calendrio

    Captulo 10 Imagens

    Drawable Imagem de Fundo Imagem no Boto Galeria de Imagens

    Captulo 11 Jogos Parte 1

    Thread Runnable Handler Criando o Jogo Desenhando um Objeto Criando um Objeto Personalizado

  • 7/30/2019 Curso de Android_Jogos

    4/127

    Captulo 12 Jogos Parte 2

    Objeto Dinmico Ataque Meteoros Painel Classes de Controle

    Captulo 13 Publicando seus Aplicativos e Jogos

    Google Play Ganhando Dinheiro Consideraes Finais

    Captulo 2 Conceitos e Definies

    Introduo

    Voc est iniciando o Curso de Android, que ir capacit-lo para desenvolver aplicativos e

    jogos para celular e tablet.

    Android um sistema operacional mvel criado e mantido pela Google. Atualmente o mais

    usado em celulares e em tablets vendidos pelo mundo.

    Algumas funcionalidades do Android:

    Framework de Aplicao permitido reuso e substituio de componentes Java Virtual Machine (Dalvik) otimizado para dispositivos mveis Navegador integrado baseado no motor de cdigo aberto Webkit Grficos registrados e otimizados para bibliotecas personalizadas para grficos 2D;

    Grficos 3D baseado no OpenGL ES 1.0 (acelerao de hardware opcional)

    SQLite para estrutura de base de dados Suporte a mdia para udios, vdeos e os seguintes formatos de imagens: MPEG4,

    H.264, MP3, AAC, AMR, JPG, PNG, GIF

    Telefonia GSM (depende do hardware) Bluetooth, EDGE, 3G e WiFi (depende do hardware) Cmera, GPS, compass e acelermetro (depende do hardware) Rico ambiente de desenvolvimento

  • 7/30/2019 Curso de Android_Jogos

    5/127

    Cada verso do Android tm, desde a verso 1.5, nomes de sobremesas ou bolos (em ingls) e

    seguem uma lgica alfabtica.

    Atualmente o Android est na verso 4, chamada de Ice Cream Sandwich.

  • 7/30/2019 Curso de Android_Jogos

    6/127

    API Level um nmero inteiro que identifica a verso da API do Framework lanada em uma

    determinada verso.

    A plataforma Android prov uma API do Framework que aplicativos podem usar para interagir

    com o sistema Android.

    A API do Framework consiste em:

    O core de pacotes e classes Uma lista de elementos XML e atributos para declaraes no arquivo manifest Uma lista de elementos XML e atributos para declaraes de acesso a recursos Uma lista de Intents Uma lista de permisses que aplicativos podem requerer

  • 7/30/2019 Curso de Android_Jogos

    7/127

    Android SDK (Software Development Kit) um kit de desenvolvimento para Android. Contm

    todas as ferramentas e bibliotecas necessrias para que o Desenvolvedor possa criar um

    aplicativo ou jogo para Android.

    O Android SDK possui algumas ferramentas importantes:

    SDK Manager Gerenciador de recursos do Android SDK. Nele voc pode escolherquais so os recursos que voc far download para seu Android SDK

    AVD Manager Gerenciador de simuladores de dispositivos com Android Android Tool Shell com comandos para projetos Android ADB Shell com comandos para comunicao com os dispositivos virtuais ou reais

    Captulo 3 Instalao

    Introduo

    Iremos agora preparar o ambiente de desenvolvimento, instalando e configurando asferramentas necessrias para comearmos a programar para Android.

    A instalao e configurao semelhante para qualquer um desses sistemas operacionais:

    Linux, MacOS e Windows.

  • 7/30/2019 Curso de Android_Jogos

    8/127

    Para comearmos, voc precisar fazer o download do programa Eclipse:

    http://www.eclipse.org/downloads/

    Escolha o pacote: Eclipse IDE for Java Developers

    O Eclipse uma IDE (Ambiente Integrado de Desenvolvimento) que ser o programa que

    utilizaremos para programar.

    A instalao bem simples, basta descompactar o arquivo em um diretrio de sua preferncia.

    Em seguida s executar o Eclipse.

    necessria a instalao do Java antes de usar o Eclipse.

    Ferramenta de Desenvolvimento do Android, ou no inglsAndroid Development Tools (ADT),

    um plugin para o Eclipse que lhe oferece um poderoso ambiente de desenvolvimento

    integrado para o Android.

    O ADT recomendado pela prpria Google como a melhor maneira e a mais rpida para se

    desenvolver para o Android.

    Vamos agora instalar o ADT no Eclipse.

    Com o Eclipse abertom v ao menu Help >> Install New Software. Conforme mostra a imagem

    abaixo:

    http://www.eclipse.org/downloads/http://www.eclipse.org/downloads/http://www.eclipse.org/downloads/
  • 7/30/2019 Curso de Android_Jogos

    9/127

    Na janela que ser exibida, clique no botoAdd...

    Na nova janela, preencha com as seguintes informaes:

    Name: Android ADT (Ou qualquer um a sua escolha)

    Lacation:https://dl-ssl.google.com/android/eclipse/

    Clique em OK

    https://dl-ssl.google.com/android/eclipse/https://dl-ssl.google.com/android/eclipse/https://dl-ssl.google.com/android/eclipse/https://dl-ssl.google.com/android/eclipse/
  • 7/30/2019 Curso de Android_Jogos

    10/127

    Em seguida clique no boto Next >

    A instalao ir demorar de acordo com a sua conexo com a Internet.

    Depois do download e antes da instalao, o Android ir exibir uma notificao de

    confiabilidade do plugin, s clicar em OKe continuar. Este plugin foi desenvolvido e

    mantido pela prpria Google, ento voc tem a garantia Google de confiabilidade.

    Ao terminar a instalao, reinicie o Eclipse.

    Ao reiniciar o Eclipse, uma janela ser exibida, conforme imagem abaixo:

    A instalao do Android SDK de forma manual bem simples, basta fazer o download do

    mesmo e descompact-lo em um diretrio de sua preferncia.

    O download pode ser feito no prprio site do Android:

    http://developer.android.com/sdk

    http://developer.android.com/sdkhttp://developer.android.com/sdkhttp://developer.android.com/sdk
  • 7/30/2019 Curso de Android_Jogos

    11/127

    Mas sugiro que escolha a instalao automtica mesmo.

    Depois de instalado o ADT e o SDK, seu Eclipse ganhar a toolbar do Android, semelhante a

    imagem abaixo:

    Clique no primeiro boto. Se deixar o mouse em cima do boto ir aparecer o texto Opens the

    Android SDK Manager.

    O Android SDK Manager gerencia todos os recursos instalados em seu SDK.

    A janela do Android SDK Manager semelhante imagem abaixo:

    Os seguintes componentes precisam ser instalados:

    Tools:

    Android SDK Tools Android SDK Platform-tools

    Android 3.0 (API 11)

    SDK Platform

  • 7/30/2019 Curso de Android_Jogos

    12/127

    Android SDK 2.1 (API 7)

    SDK PlatformNo h problemas em instalar outros componentes, pode instalar todos que quiser, mas

    somente estes citados que sero usados neste curso.

    Ao selecionar os componentes, clique no boto Install X Packages (Onde X o nmero de

    componentes selecionados).

    Na tela seguinte, selecione Accept All, para aceitar todas as licenas, depois clique no boto

    Install. Assim sero instalados os componentes.

    O seu ambiente de desenvolvimento para Android agora est pronto!

    No prximo captulo iremos fazer nosso primeiro aplicativo.

    Captulo 4 Ol Mundo

    Curiosidade

    Na rea de TI, quando vamos criar nosso primeiro programa em uma linguagem que estamos

    aprendendo, ns damos o nome de Ol Mundo, do ingls Hello World.

  • 7/30/2019 Curso de Android_Jogos

    13/127

    Na prxima janela voc escolher a verso mnima do Android que seu Aplicativo poder ser

    instalado.

    Ateno: Esta deciso importante para seu aplicativo, pois quanto menor a verso, maior

    ser a compatibilidade, ou seja, maior nmero de dispositivos ir suportar seu aplicativo.

    Se voc escolher a verso 3, dispositivos com Android na verso 2.1 ou 2.3, por exemplo, no

    podero executar seu aplicativo. Mas dispositivos com Android na verso acima, como o 4, por

    exemplo, podero execut-lo.

    Porm, se voc escolher verses antigas, voc no poder usar recursos novos que esto

    disponveis somente em verses mais novas.

    Por isso muito importante voc escolher a verso que mais se adequa ao seu aplicativo.

    Como iremos desenvolver um aplicativo simples, iremos inicialmente escolher a verso 2.1

    para nosso aplicativo, que a verso que abrange mais de 95% dos dispositivos fabricados.

  • 7/30/2019 Curso de Android_Jogos

    14/127

    Pronto! Seu projeto foi criado!

    E deve ficar assim:

    Agora, vamos testar o aplicativo no dispositivo, vamos criar um AVD para isso...

  • 7/30/2019 Curso de Android_Jogos

    15/127

    AVD uma sigla para Android Virtual Device, que no portugus significa Dispositivo Virtual

    Android.

    O AVD um gerenciador de simuladores de celular e tablet, como ele voc pode simular

    qualquer dispositivo com qualquer verso do Android.

    Ento vamos agora criar um novo simulador para executar nosso primeiro aplicativo.

    Clique no boto doAVD Managerda Toolbar do Android. Ao deixar o mouse em cima do

    boto aparece a descrio Opens the Android VirtualDevice Manager.

    Clique no boto New... para criar um novo AVD.

  • 7/30/2019 Curso de Android_Jogos

    16/127

    Clique no boto Create AVD.

    Agora o AVD Manager est da seguinte forma:

    Selecione o AVD avd21 e clique no boto Start...

    Na nova janela clique no boto Launch.

  • 7/30/2019 Curso de Android_Jogos

    17/127

    O simulador ser carregado, costuma demorar um pouco at que ele carregue por completo.

    Agora vamos executar o aplicativo Ol Mundo no simulador (AVD) que criamos.

  • 7/30/2019 Curso de Android_Jogos

    18/127

    Como s existe um dispositivo iniciado, que o simulador aberto, o aplicativo poder ser

    executado direto nele. Porm, o Eclipse pode te questionar qual dispositivo deseja executar o

    aplicativo, principalmente se houver mais de um iniciado.

    A janela para seleo do dispositivo esta:

    S clicar no boto OKpara continuar.

  • 7/30/2019 Curso de Android_Jogos

    19/127

    Note que no foi preciso digitar nenhuma linha de cdigo para criar o aplicativo e execut-lo.

    Bem simples e prtico.

    O aplicativo ainda no faz nada, mas ainda estamos no comeo do curso, ento fique calmo

    que iremos ainda programar funcionalidades para deixar o aplicativo interativo com o usurio.

    Curiosidade

    Se voc possui um celular ou um tablet com Android, voc pode executar seus aplicativos

    direto nele, sem precisar usar o simulador (AVD), basta plugar seu dispositivo no computador

    via USB, e executar o projeto da mesma forma que fizemos antes.

    No final do curso ser ensinado como disponibilizar o aplicativo no Google Play.

    Captulo 5 Projeto Android

    Introduo

    Antes de comear o desenvolvimento preciso entender a estrutura dos projetos para

    Android.

    Todo aplicativo ou jogo deve seguir uma estrutura padro para que funcione no Android.

    Iremos abordar de forma resumida e direta a estrutura dos projetos para Android, para vocse familiarizar com este ambiente, mas voc ir se acostumar conforme for criando seus

    projetos durante o curso, ento no se preocupe em decorar, somente em entender o

    contedo passado neste captulo.

  • 7/30/2019 Curso de Android_Jogos

    20/127

    Todo projeto deve seguir a seguinte estrutura:

    A pasta res (Resources, em ingls) o diretrio que tem o objetivo de armazenar os recursos

    do projeto.

    Veremos todos seus subdiretrios e suas finalidades.

    As imagens por padro so colocadas no diretrio drawable, que sero usadas em qualquer

    dispositivo.

    Caso voc queira colocar a mesma imagem em diferentes resolues, j que seu aplicativo

    pode se executado em diferentes dispositivos com diferentes resolues, voc separa estesarquivos nos respectivos diretrios drawable de resoluo. A imagem deve conter o mesmo

    nome para o Android saber que a mesma imagem.

    O diretrio layoutcontm os XMLs das telas do projeto. Cada tela possui um XML

    correspondente a definio dos componentes que compe a tela.

    Estes layouts tambm servem para layout no s de tela, mas como de outros componentes,

    como um ListView, por exemplo.

    Abordaremos com detalhes este diretrio nos prximos captulos.

    O diretrio values armazenam estilos e textos.

  • 7/30/2019 Curso de Android_Jogos

    21/127

    Os estilos so propriedades padres para componentes com o mesmo layout. Seria

    semelhante ao CSS no desenvolvimento WEB.

    Os textos so Strings armazenados em XML, para internalizar seu projeto. Voc pode colocar

    um padro para cada linguagem (portugus, ingls, francs, espanhol, entre outros), e o seu

    aplicativo assume os textos da linguagem definida no dispositivo.

    O arquivoAndroidManifest.xmlcontm as configuraes essenciais sobre seu aplicativo para o

    sistema Android. So informaes que o Android necessita antes que ele possa executar

    qualquer cdigo do seu aplicativo.

    Entre outras configuraes, esto presentes:

    O nome do pacote Java para o aplicativo. O nome do pacote server como umidentificador nico.

    Descreve os componentes do aplicativo. Os activities, services, broacast receives, econtent providers que compe o aplicativo.

    Determina quais os processos hospedar os componentes do aplicativo. Declara quais as permisses que o aplicativo precisa acessar do dispositivo. Declara quais as permisses que outros aplicativos so requeridas para interagir com

    seu aplicativo.

    Declara a verso mnima da API do Android que o aplicativo requer. Lista as bibliotecas que o aplicativo precisa referenciar.

    Abordaremos melhor oAndroidManifest.xmlde acordo com os projetos que iremos fazer

    durante o curso.

  • 7/30/2019 Curso de Android_Jogos

    22/127

    Como estamos usando o Eclipse para desenvolver os projetos, voc precisa tambm entender

    como funciona o projeto Android dentro dele.

    O diretrio gen de uso exclusivo do eclipse e voc no deve se preocupar com ele. Ele

    modifica o contedo de acordo com a compilao do projeto.

    O diretrio bin fica a compilao do projeto, onde gerado o arquivo *.apk para ser instalado

    no Android, mas esta instalao feita automaticamente pelo Eclipse.

    O arquivo .classpath contm as referncias para as bibliotecas utilizadas pelo projeto e se elas

    devem ser exportadas para o projeto compilado.

    O arquivoprojects.properties contm as propriedades do projeto, como por exemplo, a API do

    SDK utilizada para o desenvolvimento do projeto.

  • 7/30/2019 Curso de Android_Jogos

    23/127

    Voc j aprendeu como a estrutura do projeto deve seguir, no captulo anterior tambm

    aprendeu a criar e executar o projeto no Android, agora voc est preparado para comear a

    desenvolver.

    Captulo 6 Projeto Android

    Introduo

    Voc ir agora conhecer os componentes padres do Android para desenhar as telas.

    Aprenderemos como e quando us-los em seus aplicativos.

    Iremos utilizar neste captulo o projeto Ola Mundo criado no captulo 4.

    Como vimos no captulo anterior, o diretrio ../res/layout/contm os XMLs com os layouts do

    projeto.

    O Eclipse automaticamente j cria o arquivo main.xmlneste diretrio.

    Veja a estrutura j existente:

    Um clique-duplo no main.xmlpara abri-lo.

  • 7/30/2019 Curso de Android_Jogos

    24/127

    O Eclipse abrir o arquivo da seguinte maneira:

  • 7/30/2019 Curso de Android_Jogos

    25/127

  • 7/30/2019 Curso de Android_Jogos

    26/127

  • 7/30/2019 Curso de Android_Jogos

    27/127

  • 7/30/2019 Curso de Android_Jogos

    28/127

  • 7/30/2019 Curso de Android_Jogos

    29/127

  • 7/30/2019 Curso de Android_Jogos

    30/127

  • 7/30/2019 Curso de Android_Jogos

    31/127

    Voc deve ter notado que ao adicionar o texto, somente foi possvel adicionar em baixo ou emcima do boto, no sendo possvel colocar ao lado. Isso se deve ao fato de estarmos usando o

    LinearLayoutna orientao vertical.

    Vamos agora alterar o texto dos componentes adicionados.

    H duas maneiras de fazer isso, pelo modo grfico ou direto no cdigo pelo editor XML.

    Para aprendermos das duas formas, iremos trocar o texto do boto pelo modo grfico e do

    texto direto no cdigo.

  • 7/30/2019 Curso de Android_Jogos

    32/127

  • 7/30/2019 Curso de Android_Jogos

    33/127

    E no modo grfico ficar assim:

  • 7/30/2019 Curso de Android_Jogos

    34/127

    Se voc executar o projeto ver que o aplicativo no Android ter a tela agora semelhante a tela

    que voc desenhou. Porm, o boto ainda no executa nenhuma ao...

    ... vamos ento adicionar uma ao a este boto.

    Primeiro vamos editar o identificador dos nossos componentes para fcil identificao no

    cdigo fonte.

    Na edio de XML, mude os atributos android:iddo boto e do texto, respectivamente, para os

    identificadores @+id/btnMsg e @+id/txtMsg.

  • 7/30/2019 Curso de Android_Jogos

    35/127

  • 7/30/2019 Curso de Android_Jogos

    36/127

  • 7/30/2019 Curso de Android_Jogos

    37/127

    Agora vamos executar o nosso aplicativo!

  • 7/30/2019 Curso de Android_Jogos

    38/127

    Seu aplicativo criou vida!

    Neste captulo voc aprendeu sobre os componentes do Android e os primeiros passos para

    desenhar uma tela e codificar suas aes.

    No prximo captulo entraremos a fundo sobre a codificao das telas.

    Captulo 7 Telas

    Introduo

    AS telas no Android so tratadas com o nome deActivity(Atividade). Neste captulo iremos ver

    como trabalhar com detalhes de seu comportamento e como trabalhar com asActivities.

    Uma Activity um componente do aplicativo que fornece uma tela com a qual os usurios

    podem interagir, a fim de fazer algo, como discar o telefone, tirar uma foto, enviar um e-mail

    ou visualizar um mapa.

    J vimos no captulo anterior como fazemos para desenhar uma tela, atribuindo componentes

    e definindo suas propriedades, tudo atravs do Layout XML.

    Vimos tambm como codificar essa tela para executar uma ao.

    Mas no vimos ainda como o XML e o cdigo esto conectados.

  • 7/30/2019 Curso de Android_Jogos

    39/127

    TodaActivitydeve ter como superclasse a classeActivity.

    AlgumasActivities podem ser herdadas de outras classes, como a ListActivity, que j possuem

    como superclasse a classeActivity.

    Note agora que foi sobrescrito o mtodo onCreate(Bundle savedInstanceState) da superclasse

    Activity. Comoo prprio comentrio explica, esse mtodo chamado quando aActivity

    criada pela primeira vez.

    Na linha 15 definido o Layout XML que aActivityir usar para desenhar a tela. Foi passado

    para o mtodo setContentView(View view) o layout main.xml.

    Para todaActivitycriada necessrio informar aoAndroid Manifestda sua existncia, casocontrrio o projeto no ter permisso para execut-la.

    Abra o arquivoAndroidManifest.xml.

  • 7/30/2019 Curso de Android_Jogos

    40/127

    Clique na abaApplication.

  • 7/30/2019 Curso de Android_Jogos

    41/127

  • 7/30/2019 Curso de Android_Jogos

    42/127

    Iremos agora criar mais uma tela para voc entender melhor essa referncia entre cdigo

    fonte e Layout XML, assim como aprender a fazer a navegao entre elas.

    Para este captulo crie um novo projeto Android com os seguintes dados:

    Com o projeto criado, ele ter a seguinte estrutura no Package Explorer:

    Primeiro vamos criar o Layout XML dasActivities do nosso projeto.

  • 7/30/2019 Curso de Android_Jogos

    43/127

  • 7/30/2019 Curso de Android_Jogos

    44/127

    Repita o processo para criar os layouts egito.xmlefencia.xml.

    Seu projeto ficar com a seguinte estrutura:

    Agora vamos adicionar alguns componentes nos layouts criados. Os seguintes componentes

    devem ser adicionados nas seguintes telas...

  • 7/30/2019 Curso de Android_Jogos

    45/127

    Os atributos para cada componente so:

    Agora vamos criar o cdigo fonte para asActivities.

  • 7/30/2019 Curso de Android_Jogos

    46/127

  • 7/30/2019 Curso de Android_Jogos

    47/127

    Repita o mesmo procedimento para as classes EgitoActivitye FeniciaActivity.

    No se esquea de associar com seus respectivos Layouts XML.

    Em seguida vamos adicionar a referncia das Activities noAndroid Manifest.

    Abra oAndroidManifest.xml, v na AbaApplication, no grupoApplication Nodes clique no

    botoAdd...

    Selecione o itemActivitye clique no boto OK.

    Preencha o campo Name com o valor .MapaActivity(no esquea do ponto antes da classe,

    que faz referncia ao pacote principal do projeto).

  • 7/30/2019 Curso de Android_Jogos

    48/127

    Repita o mesmo procedimento para as classes EgitoActivitye FeniciaActivity. Em seguida

    vamos codificar a navegao entre as telas.

  • 7/30/2019 Curso de Android_Jogos

    49/127

    Na linha 24 foi instanciado um objeto da classe Intent.

    Um Intent uma descrio abstrata de uma operao a ser executada. O Intentfornece uma

    facilidade para realizao em tempo de execuo de uma ligao entre o cdigo em diferentes

    aplicaes, onde pode ser transferidas informaes entreActivities.

    O mesmo feito na linha 31 e 32 para MapaActivity.

    Agora faremos o cdigo do MapaActivity.

    Agora faremos o cdigo do EgitoActivity.

  • 7/30/2019 Curso de Android_Jogos

    50/127

    O cdigo semelhante ao que j fizemos.

    No evento do boto Voltar, finalizamos a tela atual, como j fizemos no MapaActivity. No

    evento do boto Seguir ns chamamos a tela FeniciaActivity e em seguida finalizamos a tela

    atual.

    Na tela FeniciaActivity no h codificao extra, simplesmente ser exibido a mensagem que jdefinimos nofencia.xml.

    Vamos executar o projeto?

  • 7/30/2019 Curso de Android_Jogos

    51/127

  • 7/30/2019 Curso de Android_Jogos

    52/127

  • 7/30/2019 Curso de Android_Jogos

    53/127

  • 7/30/2019 Curso de Android_Jogos

    54/127

    O usurio sempre ter a opo de fechar a tela atual utilizando o boto padro dos

    dispositivos Android. Veremos agora a parte do cdigo que deixamos para o prximo tpico.

    Contextos so informaes do ambiente da aplicao. O Android possui dois contextos:

  • 7/30/2019 Curso de Android_Jogos

    55/127

    Activity Context Contexto de uma tela. Application Context Contexto do Aplicativo.

    Toda classe que representa um desses contextos implementam a interface Context.

  • 7/30/2019 Curso de Android_Jogos

    56/127

    O contexto nos til quando precisamos de alguma informao da aplicao, como buscar o

    diretrio em que o aplicativo foi instalado, por exemplo.

    As Activities possuem um ciclo de vida da sua criao at a sua destruio. importante

    entender esse ciclo para entender seu funcionamento.

  • 7/30/2019 Curso de Android_Jogos

    57/127

    Voc j implementou o mtodo onCreate() da Activity, os demais so implementados da

    mesma forma, o que difere o momento em que cada mtodo invocado pelo aplicativo,

    como visto no fluxo que acabou de ver.

    Neste captulo voc aprendeu a criar diferentes telas para seu aplicativo e como interagir entre

    elas. Aprendeu que a ela tratada pelo Android como uma Activity, apredeu seu ciclo de vida

    e sobre o contexto do Android.

    Aprendendo os conceitos de forma correta, voc perceber que o desenvolvimento para

    Android bem mais simples do que parece, e at mesmo divertido. Espero que esteja

    gostando!

    Vamos ento para o prximo captulo.

    Captulo 8 Layout

    Introduo

    No captulo anterior vimos como funciona as telas do Android e utilizamos vrias vezes o

    Layout Linear (LinearLayout) para organizar os componentes na tela.

    Neste captulo iremos ver sobre este e outros layouts do Android, para voc aprender

    diferentes formas de organizar os componentes.

    O Layout Linear (LinearLayout) um Grupo de Viso (ViewGrupo) que disponibiliza os

    componentes em uma direo linear, seja horizontal ou vertical.

    Voc deve ser cauteloso ao uso excessivo do LinearLayout. Se voc estiver usando vrios em

    uma s tela, talvez voc deva considerar em usar o Layout Relativo.

    Crie um novo projeto Android com os seguintes dados:

  • 7/30/2019 Curso de Android_Jogos

    58/127

  • 7/30/2019 Curso de Android_Jogos

    59/127

    Vamos analisar o XML:

    Existe o n principal LinearLayoutque define sua orientao como vertical todos os ns filhos(neste caso possui dois) sero posicionados verticalmente.

    O primeiro n filho um outro LinearLayoutque usa uma orientao horizontal e o segundo

    n filho um LinearLayoutque usa a orientao vertical. Cada um desses LinearLayouts

    contm alguns componentes TextView, que so orientados de acordo com seus respectivos

    LinearLayout.

  • 7/30/2019 Curso de Android_Jogos

    60/127

    O Layout Relativo (RelativeLayout) um Grupo de Viso (ViewGroup) que disponibiliza cada

    componente em posies relativas.

    A posio de um componente pode ser especificado como em relao a elementos irmos (tal

    como para a esquerda de ou abaixo de um determinado componente) ou em posies

    relativas para a rea de um RelativeLayout(tais como alinhado com o fundo, esquerda do

    centro).

    Crie um novo projeto Android com os seguintes dados:

  • 7/30/2019 Curso de Android_Jogos

    61/127

    Vamos analisar o XML:

    Note que em cada um dos atributos android:layout_*, assim como layout_below,

    layout_alignParentRight e layout_toLeftOf.

    Quando usado o RelativeLayout, voc pode usar esses atributos para descrever como vocquer posicionar cada componente. Cada um desses atributos define um tipo diferente de

    posio relativa.

    Alguns atributos usam o ID de um componente para definir sua posio relativa. Por exemplo,

    se voc definiu que um boto ter margem esquerda de 20dp, voc alinha os demais botes

    com a mesma posio-esquerda deste primeiro boto, assim se voc mudar a margem

    esquerda para outro valor do primeiro boto, todos os demais botes iro acompanha-lo.

    O Layout de Tabela (TableLayout) um Grupo de Viso (ViewGroup) que disponibiliza os

    componentes em linhas e colunas, ou seja, como uma tabela.

    Crie um novo projeto Android com os seguintes dados:

  • 7/30/2019 Curso de Android_Jogos

    62/127

  • 7/30/2019 Curso de Android_Jogos

    63/127

    Vamos analisar o XML:

    Note como este se assemelha estrutura de uma tabela HTML. O elemento TableLayout

    como o elemento do HTML. TableTow como o elemento . Mas, para as clulas,

    voc pode usar qualquer tipo de componente.

    Neste exemplo, um TextView usado para cada clula. Entre algumas linhas, existe tambm

    uma viso bsica, que usada para desenhar uma linha horizontal.

  • 7/30/2019 Curso de Android_Jogos

    64/127

    O Layout em Grade (GridLayout) um Grupo de Viso (ViewGroup) que disponibiliza os

    componentes em uma grade bidimensional, rolhvel. Os itens da grade so inseridos

    automaticamente no Layout usando um ListAdapter.

    Voc ir criar uma grade de imagens miniaturas. Quando uma imagem selecionada, uma

    mensagem ir exibir a posio da imagem.

    Crie um novo projeto Android com os seguintes dados:

  • 7/30/2019 Curso de Android_Jogos

    65/127

    Depois do layout main.xml associado classe HelloGridView, o mtodo setAdapter() defineum adaptador genrico (ImageAdapter) como fonte para todos os itens a serem exibidos na

    grade. O Image Adapter criado no prximo passo.

    Para fazer algo quando um item da grade clicado, o mtodo setOnItemClickListener() recebe

    um novoAdapterView.OnItemClickListener. Esta instncia annima define o mtodo de

    calbackdo onItemClick() para exibir uma mensagem que informa a posio (baseado em zero)

    do item selecionado.

    Crie a classe ImageAdaptere edite seu contedo da seguinte forma:

  • 7/30/2019 Curso de Android_Jogos

    66/127

    Vamos analisar a classe ImageAdapter:

    Primeiro, esta implementao requer mtodos herdados do BaseAdapter. O construtor e o

    mtodo getCount() so auto-explicativos. Normalmente, getItem(int) deve retornar o objeto

    atual na posio especificada no adaptador, mas isto ignorado neste exemplo. Tambm, o

    mtodo getItemId(int) deve retornar o ID da linha do item, mas no usado neste exemplo.

    O primeiro mtodo necessrio o getView(). Este mtodo criar uma nova viso para cada

    imagem adicionada ao ImageAdapter. Quando este chamado, uma viso passada, que

    normalmente um objeto reciclado (deve ser chamado pelo menos uma vez), ento

    verificado se o objeto nulo. Se no for nulo, uma ImageView iniciada e configurada com aspropriedades desejadas para a apresentao da imagem.

    Se a viso passada para o getView() no nulo, ento a imagem local inicializada com o

    objeto reciclado da viso.

    No final do mtodo getView(), a posio passada no mtodo usada para selecionar uma

    imagem do array mThumblds, que definido como um recurso de imagem para o ImageView.

    Tudo o que resta definir o array mThumblds de recursos drawable.

    O array mThumblds contm referncias s imagens do projeto que est disponvel no painel doaluno. Voc pode utilizar estas imagens ou escolher outras, bastando adicionar no diretrio

    res/drawable/.

  • 7/30/2019 Curso de Android_Jogos

    67/127

    No Android voc pode reaproveitar um layout dentro de vrios outros layouts. Desta forma,

    voc pode fazer cabealhos ou rodaps uma s vez e reutiliz-los em todas as suas telas, ouqualquer tipo de layout que se repita mais de uma vez.

    Crie um novo projeto Androide om os seguintes dados:

  • 7/30/2019 Curso de Android_Jogos

    68/127

  • 7/30/2019 Curso de Android_Jogos

    69/127

  • 7/30/2019 Curso de Android_Jogos

    70/127

    Clique no boto.

  • 7/30/2019 Curso de Android_Jogos

    71/127

    Neste captulo voc aprendeu a criar diferentes tipos de layouts para organizar oscomponentes de diferentes maneiras.

    Faa bom uso dos layouts no design de suas telas.

    Captulo 9 Formulrios

    Introduo

    H vrias formas de entrada de dados no Android, comumente usados em desenvolvimento

    para desktops ou Web, que so os componentes de formulrios.

    Neste captulo veremos como funcionam estes componentes no Android.

  • 7/30/2019 Curso de Android_Jogos

    72/127

    Para este captulo crie um novo projeto Android com os seguintes dados:

    Os seguintesActivities devero ser criados com seus respectivos Layouts XML:

    Inclua estesActivities noAndroidManifest.xml

  • 7/30/2019 Curso de Android_Jogos

    73/127

  • 7/30/2019 Curso de Android_Jogos

    74/127

    A finalidade desta tela fazer que o usurio digite seu nome para exibir uma mensagem

    personalizada.

    Usamos o mtodo getText() do EditTextque o usurio ir digitar seu nome para pegar o valor

    digitado e adicionamos o valor, com um texto fixo concatenando no componente TextView

    para exibir ao usurio.

  • 7/30/2019 Curso de Android_Jogos

    75/127

    No exemplo anterior, se o usurio no digitar nenhum texto e clicar ir aparecer a mensagem

    Ol, !.

    Esta mensagem no amigvel ao usurio, pois esperamos que algum nome seja digitado.

    Para isso teremos que criar uma validao.

    A validao ir notificar ao usurio que o campo Nome de preenchimento obrigatrio. Esta

    notificao ser feita atravs de uma mensagem.

    Utilizaremos ento o recurso padro do Android de mensagens.

  • 7/30/2019 Curso de Android_Jogos

    76/127

    Utilizamos a classe Toastpara exibir a mensagem ao usurio. Foi utilizado o mtodo

    makeTest() para criar a mensagem e o mtodo show() para exibi-la.

  • 7/30/2019 Curso de Android_Jogos

    77/127

    Execute o projeto e veja o comportamento da seleo nica. Como o prprio nome do tpico

    sugere este componente deve ser usado para quando o usurio quiser selecionar uma opode uma lista.

  • 7/30/2019 Curso de Android_Jogos

    78/127

    Execute o projeto e veja o comportamento da seleo mltipla. Como o prprio nome deste

    tpico sugere este componente deve ser usado quando o usurio quiser selecionar uma ou

    mais opes de uma lista.

  • 7/30/2019 Curso de Android_Jogos

    79/127

    Execute o projeto e veja o comportamento do boto de ativao. O boto de ativao deve ser

    usado quando a opo possui somente duas escolhas, que normalmente so para ativar ou

    desativar alguma funcionalidade do seu aplicativo ou do Android.

    Crie um novo projeto Android com os seguintes dados:

  • 7/30/2019 Curso de Android_Jogos

    80/127

  • 7/30/2019 Curso de Android_Jogos

    81/127

    No cdigo anterior foi criado um novoArrayAdaptere inicializado com o layout list_item.xml

    para cada item a lista do array PAISES (definido no prximo passo).

    Em seguida o mtodo setAdapter() chamado para associar oArrayAdaptercom o

    componenteAutoCompleteTextViewpara que o array popule a lista de sugestes.

    Crie um novo projeto Android com os seguintes dados:

  • 7/30/2019 Curso de Android_Jogos

    82/127

  • 7/30/2019 Curso de Android_Jogos

    83/127

  • 7/30/2019 Curso de Android_Jogos

    84/127

    Neste captulo foi demonstrado que possvel trabalhar com componente de formulrios de

    forma bem simples, semelhante a outras plataformas de desenvolvimento em Java, como

    Desktop e WEB.

    Aproveite agora para criar um aplicativo utilizando o conhecimento obtido at agora. Seulimite sua criatividade, misture componentes, use-os de diferentes formas e se divirta.

    A prtica ir fixar o conhecimento. No se prenda aos exemplos criados aqui, faa outros da

    sua maneira, para absorver melhor o contedo.

    Utilize os captulos anteriores como consulta para relembrar o que j foi estudado.

    Depois continue o curso no prximo captulo.

    Captulo 10 Imagens

    Introduo

    Neste captulo iremos trabalhar com imagens de diversas formas, seja como imagem de fundo,

    em botes ou uma galeria.

    Para este captulo crie um novo projeto Android com os seguintes dados:

  • 7/30/2019 Curso de Android_Jogos

    85/127

    Pegue as imagens que esto no painel do aluno neste captulo e coloque no diretrio do

    projeto res/drawable. Caso o Eclipse tenha criado o diretrio res/drawable-mdpi, altere o

    nome para res/drawable, e delete os demais diretrios drawable se houver. Atualize o projeto.

    Como j vimos, quando queremos armazenar uma imagem no nosso projeto, podemos

    armazen-la no diretrio res/drawable. Iremos ver agora como usar essas imagens.

  • 7/30/2019 Curso de Android_Jogos

    86/127

  • 7/30/2019 Curso de Android_Jogos

    87/127

    No diretrio Drawable podemos criar imagens de forma programtica tambm, atravs do

    XML.

    Agora vamos criar um fundo gradiente e adicionar ao fundo da tela.

  • 7/30/2019 Curso de Android_Jogos

    88/127

    Vimos que da mesma forma que definimos uma imagem atravs do componente ImageView,

    tambm podemos alterar o fundo de outros componentes atravs do atributo

    android:background.

  • 7/30/2019 Curso de Android_Jogos

    89/127

    Tambm vimos que possvel criar desenhos atravs do XML e us-lo como imagem.

    No Android podemos tambm personalizar os botes, com imagens diferentes para cada

    estado. Iremos colocar um boto com uma imagem normal e outra para quando for clicado.

  • 7/30/2019 Curso de Android_Jogos

    90/127

    Vimos que com o XML conseguimos definir uma imagem para o boto e outra para quando o

    boto for clicado.

    Quando queremos exibir vrias imagens, mais do que cabe na tela, se torna interessante o uso

    de uma galeria para exibio dessas imagens. Iremos agora criar esta galeria.

  • 7/30/2019 Curso de Android_Jogos

    91/127

  • 7/30/2019 Curso de Android_Jogos

    92/127

  • 7/30/2019 Curso de Android_Jogos

    93/127

    Neste captulo voc aprendeu a trabalhar com imagens de diferentes formas. Imagens so

    recursos importantes no design de um aplicativo. Tenha cuidado com imagens grandes, pois os

    dispositivos dispem de pouca memria para process-los.

    Captulo 11 Jogos parte 1

    Introduo

    Deste captulo em diante iremos aplicar todo o conhecimento obtido no curso em um jogo.

    Mesmo que voc no tenha interesse em jogos, voc obter conhecimentos importantes e

    colocar em prtica o que j aprendeu neste curso, reforando o conhecimento.

    Iremos comear com alguns conceitos que sero usados no desenvolvimento do jogo. Estes

    conceitos podem ser usado em qualquer aplicativo, mas citaremos o jogo apenas para no ter

    que ficar repetindo o tempo todo que serve tanto para jogos quanto para aplicativos.

  • 7/30/2019 Curso de Android_Jogos

    94/127

    Thread uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem

    ser executadas concorrentemente. O Java implementa uma thread atravs da classes

    java.lang.Thread.

    O uso da thread importante para executar um processo que possa demorar sem travar o

    jogo. Quando voc inicia uma thread, o processo enviado ao sistema operacional (no nossocaso, o Android) e ele rodar em paralelo e independente do seu jogo. Seu jogo estar livre

    para continuar, pois ele no ir esperar a execuo da thread.

    Vamos imaginar o seguinte cenrio:

    Ao executar uma ao, voc precisa que seja executado 3 processos.

  • 7/30/2019 Curso de Android_Jogos

    95/127

    No jogo iremos usar threads para cada processo, pois um jogo deve ser dinmico e uma ao

    no pode ficar esperando o trmino de outra.

    No Android, h uma particularidade em relao s threads. Como se perde o controle da

    thread ao inci-la, uma thread no pode alterar os componentes de uma Activity, pois no h

    garantias de qual Activity est aberta ou se existe alguma aberta quando executado uma ao

    dentro da thread.

    Para que voc possa alterar um componente de uma Activity em uma thread, voc ter que

    executar a thread dentro do mtodo runOnUiThread() da Activity em questo. Este mtodo

    dar garantia que o componente s ser alterado se a Activity estiver disponvel para

    alterao.

  • 7/30/2019 Curso de Android_Jogos

    96/127

    No Java, para que voc possa rodar uma Thread, voc precisa de uma classe que implemente a

    interface Runnable. A interface Runnable possui apenas um mtodo abstrato, que o mtodo

    run(). Este mtodo onde estar o cdigo que ser executado ao iniciar a Thread.

    Voc ver na prtica o funcionamento do Runnable quando comearmos a codificar o jogo.

    Assim como aplicativo perde o controle Thread assim que inicia, o inverso tambm acontece, a

    thread perde o controle da classe que a inicia. Porm, h uma forma de ambos secomunicarem, utilizando uma classe para enviar e receber mensagens. Essa classe chamamos

    de handler.

    Handler uma classe criada com o objetivo de uma classe se comunicar com a thread e vice-

    versa. Vamos ver como funciona o fluxo desse processo.

  • 7/30/2019 Curso de Android_Jogos

    97/127

    Iremos criar um jogo simples, mas bem dinmico e o chamaremos de Guerra Espacial.

    Primeiro vamos definir como ser o jogo.

  • 7/30/2019 Curso de Android_Jogos

    98/127

  • 7/30/2019 Curso de Android_Jogos

    99/127

    Agora que definimos como ser o jogo, vamos coloca-lo em prtica!

    Iremos criar o projeto do jogo da mesma forma que criamos todos os projetos at agora:

    Pegue as imagens que esto no painel do aluno neste captulo e coloque no diretrio

    res/drawable. Caso o Eclipse tenha criado o diretrio res/drawable-mdpi, altere o nome para

    res/drawable, e delete os demais diretrios drawable se houver. Atualize o projeto.

    Primeiro iremos criar o layout do painel. Para ficar mais organizado, como iremos usar alguns

    componentes s para o painel, iremos criar um Layout XML s para o painel.

  • 7/30/2019 Curso de Android_Jogos

    100/127

    Agora iremos criar o layout para o jogo, utilizando o layout que criamos do painel.

  • 7/30/2019 Curso de Android_Jogos

    101/127

    Por ltimo, iremos definir que o jogo deve ser exibido somente com o dispositivo na

    horizontal, ou seja, no modo retrato. Abra o arquivoAndroidManifest.xmle v na aba

    Application.

  • 7/30/2019 Curso de Android_Jogos

    102/127

  • 7/30/2019 Curso de Android_Jogos

    103/127

    Ns iremos desenhar programaticamente o tiro da nave, para que voc possa aprender a

    desenhar objetos no Android. O tiro ser um desenho, ento iremos coloca-lo no diretrio

    drawable como se fosse uma imagem qualquer do projeto.

  • 7/30/2019 Curso de Android_Jogos

    104/127

    No iremos colocar o tiro no layout, pois o tiro ser criado em tempo de execuo. Toda vez

    que for clicado no boto atirar, o tiro ser includo na tela. Mas em outro caso voc queira usar

    um desenho no seu layout, basta referenci-lo da mesma forma que voc faria com qualquer

    outra imagem drawable.

    Para este jogo no podemos ficar presos aos componentes padres do Android, precisaremos

    criar um novo para que possamos definir propriedades e mtodos personalizados. Para isso

    iremos criar um componente prprio que daremos o nome de ObjetoDinamico.

    Crie o seguinte pacote (package):

    br.com.guerraespacial.objetos

    E adicione neste pacote a seguinte classe:

    ObjetoDinamico.java

    Note que herdamos a classe ObjetoDinamico da classe ImageView, pois iremos reaproveitar

    suas propriedades e mtodos.

  • 7/30/2019 Curso de Android_Jogos

    105/127

    Por enquanto esa mudana no deve ter nenhum efeito, pois no fizemos nada diferente no

    ObjetoDinamico. Mas essa personalizao ser muito til quando iniciarmos a programao do

    jogo, pois poderemos definir as propriedades de mtodos para esta classe da nossa maneira.

    Neste captulo voc aprendeu conceitos importantes para criar um jogo ou aplicativo comlayout mais dinmico. Aprendeu tambm conceitos importantes sobre Thread e Handler para

    trabalhar com processos de forma assncrona.

    No prximo captulo iremos codificar as funcionalidades do jogo.

    Captulo 12 Jogos Parte 2

    Introduo

    Neste captulo iremos programar as seguintes funcionalidades do jogo:

    Aes dos botes:

  • 7/30/2019 Curso de Android_Jogos

    106/127

    o Movimentar a nave para cimao Movimentar a nave para baixoo Nave atirar

    Criar meteoros aleatrios indo em direo nave Colises:

    o O tiro deve adicionar um ponto ao colidir com o meteoro e destru-loo O meteoro deve remover uma vida ao colidir com a nave

    Quando a vida chegar a zero, o jogo deve ser finalizado

    Iremos agora definir as propriedades e mtodos necessrios do ObjetoDinamico.

  • 7/30/2019 Curso de Android_Jogos

    107/127

    Nestes mtodos utilizamos a altura e a largura pr-definidas para quando o mtodo getWidth()

    e o getHeight() retornam o valor zero, uma vez que estes mtodos s possuem valor quando

    conseguem pegar a proporo da tela. O marcador objetoDestruido serve para marcar que o

    objeto deve ser destrudo.

    Ainda no pacote:

    br.com.curso.guerraespacial.objetos

    Vamos criar as seguintes classes:

    ObjetoHandler

    DestruirObjetoRunnable

  • 7/30/2019 Curso de Android_Jogos

    108/127

  • 7/30/2019 Curso de Android_Jogos

    109/127

  • 7/30/2019 Curso de Android_Jogos

    110/127

    Iremos criar agora as classes para que a nave possa atirar. Crie o pacote:

    br.com.curso.guerraespacial.tiro

    Neste pacote, crie as classes:

    Tiro, MoverTiroRunnable, TiroHandler, TiroRunnable

  • 7/30/2019 Curso de Android_Jogos

    111/127

    A classe TiroRunnable ir movimentar o tiro at chegar ao final da tela, depois ir remover o

    tiro da tela.

  • 7/30/2019 Curso de Android_Jogos

    112/127

    A classe TiroHandler um handler com as aes do tiro. A classe Colisao ser criada

    posteriormente.

    A classe Tiro servir para criar o tiro e depois ir chamar a Thread para movimentar o tiro pela

    tela.

  • 7/30/2019 Curso de Android_Jogos

    113/127

    O Painel onde contabilizado e exibido a quantidade de vidas e pontos do jogo. A cada tiro

    que destri um meteoro acrescentado 1 ao ponto. A cada meteoro que atinge a nave

    subtrado 1 vida. O placar inicial de 3 vidas e 0 pontos.

    O atributojogoFinalizado um marcador para definir se o jogo est rodando ou se foi

    finalizado. Criamos mtodos para remover a vida, adicionar ponto e finalizar o jogo, que so

  • 7/30/2019 Curso de Android_Jogos

    114/127

    eventos do jogo controlados pelo Painel. Cada um desses eventos inicia uma nova Thread.

    Essas threads executam implementaes do Runnable que iremos criar agora.

    A classe RemoverVidaRunnable ir remover 1 da vida. Caso a vida esteja com o valor zero, ser

    finalizado o jogo.

  • 7/30/2019 Curso de Android_Jogos

    115/127

    Esta classe ir exibir a mensagem de Jogo Finalizado e ir bloquear o jogo.

  • 7/30/2019 Curso de Android_Jogos

    116/127

  • 7/30/2019 Curso de Android_Jogos

    117/127

    A classe MeteoroHandler contm mtodos para criao, movimentao e destruio do

    meteoros. Cada um desses eventos inicia um novo thread. Essas threads executam

    implementaes do Runnable que iremos criar agora.

  • 7/30/2019 Curso de Android_Jogos

    118/127

    O mtodo getRandomNumber() gera um nmero aleatrio de zero at o valor mximo

    passado por parmetro. Ao criar o meteoro, ser gerado um valor randmico de zero a 2, que

    ser usado para definir qual meteoro ser criado, depois ser definido um valor randmico

    para saber em qual altura ser criado o meteoro.

    Em seguida chamado o mtodo para remover o meteoro criado.

  • 7/30/2019 Curso de Android_Jogos

    119/127

    A classe MoverMeteoroRunnable ir mover e aumentar a margem direta do meteoro para

    movimenta-lo pela tela. Quando chegar ao final da tela, o meteoro ser destrudo.

  • 7/30/2019 Curso de Android_Jogos

    120/127

    A classe MeteoroRunnable servir como um loop infinito para criar os meteoros a cada 1,5

    segundos. Caso o jogo tenha sido finalizado, ser encerrado o loop para parar a criao de

    meteoros.

    Por fim, iremos criar as classes para controlar os eventos do jogo. As classes que iremos

    mencionar neste tpico pertencem ao pacote principal do jogo (br.com.curso.guerraespacial).

  • 7/30/2019 Curso de Android_Jogos

    121/127

    Na classe Nave criamos um mtodo para movimentar a nave para cima ou para baixo.

  • 7/30/2019 Curso de Android_Jogos

    122/127

  • 7/30/2019 Curso de Android_Jogos

    123/127

    A classe Colisao servir para validar, a cada movimento de um objeto dinmico, se um objeto

    dinmico colidiu com outro. Se a nave colidiu com um meteoro, o meteoro ser destrudo e

    ser removido 1 da vida. Se um tiro colidiu com um meteoro, ambos sero destrudos e ser

    adicionado 1 ao ponto.

  • 7/30/2019 Curso de Android_Jogos

    124/127

    A classe GuerraEspacialActivity o Activity de nosso projeto, onde ocorrer o jogo. Nesta

    classe foi tratado os eventos dos botes de movimentar a nave, de atirar e de iniciar o jogo.

    No mtodo onDestroy() da Activity, ser finalizado o jogo para no ficar consumindo memriado dispositivo.

  • 7/30/2019 Curso de Android_Jogos

    125/127

    Captulo 13 Publicando seus Aplicativos e Jogos

    Para finalizar este curso, voc ir aprender agora como publicar seus aplicativos e jogos para

    outras pessoas e como ganhar dinheiro com eles.

    Google Play o antigo Android Market

    Site oficial:https://play.google.com/store

    O Google Play permite aos desenvolvedores publicar e distribuir seus aplicativos diretamente

    para os usurios de celulares e tablets Android de forma muito fcil. O Google Play aberto a

    todos os desenvolvedores de aplicativos Android. Uma vez registrados, os desenvolvedores

    tm o controle completo sobre quando e como tornar suas aplicaes disponveis para os

    usurios.

    Os desenvolvedores podem facilmente gerenciar o seu portflio de aplicativos, ver

    informaes sobre downloads, classificao e comentrios. Os desenvolvedores tambm

    podem publicar atualizaes e novas verses de seus aplicativos.

    https://play.google.com/storehttps://play.google.com/storehttps://play.google.com/storehttps://play.google.com/store
  • 7/30/2019 Curso de Android_Jogos

    126/127

    Para se registrar, basta ir ao site de registro do Google Play:

    https://play.google.com/apps/publish/signup

    Antes de publicar um software no Google Play, voc deve fazer trs coisas:

    Criar um perfil de desenvolvedor; Concordar com o Contrato de Distribuio do Desenvolvedor; Pagar uma taxa de registro (U$ 25,00) com carto de crdito (usando o Google

    Checkout).

    H duas formas de monetizar seus aplicativos e jogos Android: vendendo seu aplicativo ou

    parte do seu contedo.

    Voc pode publicar seu aplicativo ou jogo no Google Play para os usurios fazerem download

    de graa, ou pode cobrar um valor fixo para cada usurio.

    Cobrando um valor, o usurio s poder fazer o download de seu aplicativo ou jogo se pagar o

    valor estipulado por voc. O usurio ir pagar a Google que ir repassar este valor a voc. Os

    detalhes da negociao com o Google esto no Contrato de Distribuio do Desenvolvedor.

    A Google tambm oferece o Google Play In-app Billing, que um service do Google Play que

    lhe permite vender contedo digital em suas aplicaes. Voc pode usar o servio para vender

    uma ampla gama de contedos, incluindo contedo para download, tais como arquivos de

    mdia ou fotos e contedo virtual.

    https://play.google.com/apps/publish/signuphttps://play.google.com/apps/publish/signuphttps://play.google.com/apps/publish/signup
  • 7/30/2019 Curso de Android_Jogos

    127/127

    Quando voc usa este servio de faturamento para vender um item, o Google lida com todos

    os detalhes de check-out para que nunca a sua aplicao tem que processar diretamente todas

    as transaes financeiras. Google Play usa o servio de check-out mesmo que usado para

    compras de aplicativos, para que seus usurios possam experimentar um fluxo consistente de

    compra familiar.

    Espero que voc tenha gostado do curso e tenha aproveitado todo seu contedo. Refaa todos

    os exerccios e depois faa a prova para adquirir seu certificado de concluso do curso. Me d

    um feedback se gostou ou no do curso, crticas e sugestes.

    At mais!