Android Aula 3
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Android Aula 3

  • 4,926 views
Uploaded on

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

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

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,926
On Slideshare
4,623
From Embeds
303
Number of Embeds
3

Actions

Shares
Downloads
455
Comments
0
Likes
4

Embeds 303

http://www.erisvaldojunior.com 291
url_unknown 10
http://www.slideshare.net 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Erisvaldo Gadelha Saraiva JúniorFaculdade de Tecnologia de João Pessoa (FATEC-JP)Especialização em Desenvolvimento para Dispositivos MóveisDisciplina: Tecnologias para Dispositivos MóveisAndroid (Parte 3) E-mail: erisvaldojunior@gmail.com Site: http://erisvaldojunior.com Twitter: @erisvaldojunior
  • 2. Roteiro da Aula TÉCNICAS E LOG, LOCALES E LOCALIZAÇÃO EXEMPLOS WIDGETS E MAPAS Recursos e Técnicas importantes para Android
  • 3. TÉCNICAS E EXEMPLOS Diversas Técnicas e Exemplos de Código em Android
  • 4. Como criar uma Splash Screen Basta ter uma Activity declarada na categoria LAUNCHER no AndroidManifest.xml que, após 3 segundos, invoca outra. SplashScreen.javaSplash Screen AndroidManifest.xml
  • 5. Exemplo Clássico de Splash Screen Imagem no meio da telaSplash Screen splash.xml
  • 6. Activity em Tela Cheia (Full Screen) Invocar o método abaixo no onCreate() da Activity ou, opcionalmente, definir um android:theme de FullScreen no AndroidManifest.xmlTela Cheia (Full Screen) Modo 1 – Chamar setFullScreen() no onCreate() da Activity Modo 2 – Definir android:theme na tag <activity> do AndroidManifest.xml
  • 7. org.xml.sax.helpers.DefaultHandler Cria-se uma classe que herda de Default Handler e implementa-se os métodos startElement(), characters() e endElement().Leitura de XML
  • 8. Objetos Intent São compostos por Component Name, Action, Data e Category.Objetos Intent
  • 9. Invocando aplicações Google Intents invocando aplicações Google
  • 10. Log, Locales e Widgets Log, Internacionalização e Widgets em Android
  • 11. android.util.Log Ferramenta de Log do Android. Permite imprimir logs de até cinco tipos:Trabalhando com Log
  • 12. LogCat Permite a visualização do Log. Disponível na perspectiva de Debug do ADT Plugin no Eclipse.Trabalhando com Log
  • 13. Adaptando a aplicação para diferentes linguagens O primeiro passo é planejar como a aplicação deve aparecer (textos e imagens) em diferentes regiões e línguas. Nesse planejamento, estabelece-se também um comportamento/local padrão.Internacionalização
  • 14. Organizando os recursos O segundo passo é mapear, para cada linguagem/país suportado, o caminho do arquivo strings.xml que irá conter os textos naquela linguagem bem como a pasta de imagens específica para a linguagem desejada.Internacionalização Dica: pode-se criar, por exemplo, res/drawable-de/ para englobar todos os aparelhos com a língua definida como Alemão, independente da sua localização.
  • 15. Criando o strings.xml para cada linguagem Cria-se um novo “Android XML File” a partir do plugin ADT no Eclipse. No assistente, defin-se o nome do arquivo como strings.xml e seleciona-se a configuração “Language” com um qualificador de duas letras indicando a linguagem desejada. IssoInternacionalização fará com que o assistente crie o arquivo na pasta correta.
  • 16. Internacionalização Criando o strings.xml para cada linguagem
  • 17. Internacionalização Testando a aplicação no emulador
  • 18. App Widgets São aplicações em miniatura que podem ser embutidas em outras aplicações (como a Home) e receber atualizações periódicas. São referenciadas como Widgets na interface do usuário.App Widgets Para criar um App Widget, necessita-se do seguinte: • AppWidgetProviderInfo – objeto que descreve os metadados do Widget, como o layout, frequência de atualização e a classe AppWidgetProvider. É definido em XML; • AppWidgetProvider – Define os métodos básicos que permitem a programação do Widget. Baseado em eventos de Broadcast. Recebe- se mensagens de broadcast quando o App Widget é ativado, atualizado, desativado e removido.
  • 19. App Widgets Além disso, é preciso definir o View Layout, correspondente ao layout inicial do App Widget, em XML. Adicionalmente, pode-se implementar uma Activity de configuraçãoApp Widgets do App Widget. Trata-se de um Activity opcional que é aberto quando o usuário adiciona o Widget e permite que o usuário modifique as configurações do mesmo em tempo de criação.
  • 20. Declarando-se um App Widget Primeiramente, declara-se a classe que herda de AppWidgetProvider no AndroidManifest.xml, conforme mostrado abaixo.App Widgets • <receiver> – elemento que especifica o AppWidgetProvider usado pelo App Widget, através do atributo android:name; • <intent-filter> - inclui uma <action> que especifica que o AppWidgetProvider aceita o broadcast APPWIDGET_UPDATE; • <meta-data> - especifica o AppWidgetProviderInfo e é definido pelos atributos android:name e android:resource.
  • 21. Declarando o AppWidgetProviderInfo Define as características de um App Widget, como dimensões mínimas, XML do Layout, frequência de atualização e, opcionalmente, uma Activity de configuração para ser instanciada quando da criação do App Widget.App Widgets • minWidth e minHeight especificam a área mínima requerida pelo layout do App Widget.; • updatePeriodMillis é o tempo de chamada do método onUpdate() do AppWidgetProvider. Deve ser longo para que não prejudique o consumo de bateria; • initialLayout aponta para o arquivo de layout do Widget; • configure especifica a Activity de configuração que deve ser iniciada quando o usuário adiciona o Widget. É opcional.
  • 22. Criando o layout de um App Widget Layouts de App Widgets são baseados em RemoteViews. Estes não suportam todos os tipos de layout e views. Um objeto RemoteView (e, consequentemente, um App Widget) só suporta os seguintes layouts e views:App Widgets
  • 23. Criando o layout de um App Widget Layouts de App Widgets são baseados em RemoteViews. Estes não suportam todos os tipos de layout e views. Um objeto RemoteView (e, consequentemente, um App Widget) só suporta os seguintes layouts e views:App Widgets
  • 24. Usando a classe AppWidgetProvider A classe AppWidgetProvider herda de BroadcastReceiver pois se trata de uma especialização para tratar os broadcasts para App Widgets. Quando um evento de broadcast para o App Widget ocorre, um dos seguintes métodos é invocado: • onUpdate() – chamado para atualizar o App Widget em intervalos definidos por updatePeriodMillis no AppWidgetProviderInfo. Também é chamado quando o usuário adiciona o Widget, excetoApp Widgets quando foi definido um Activity de configuração; • onDeleted() – Chamado quando o Widget é removido do seu aplicativo hospedeiro; • onEnabled() – chamado quando uma instância do App Widget é criada pela primeira vez; • onDisabled() – chamado quando a última instância do App Widget é excluída do hospedeiro; • onReceive() – padrão de Broadcast Receivers. Geralmente não há necessidade de implementar pois os métodos acima são automaticamente invocados pelo AppWidgetProvider.
  • 25. Exemplo de AppWidgetProvider App Widget com um botão que inicia uma Activity quando é clicado.App Widgets
  • 26. Criando uma Activity de configuração Para permitir que o usuário realize configurações ao adicionar um App Widget, cria-se um Activity de configuração. Essa Activity é automaticamente chamada em tempo de criação do App Widget. Declarando o Activity de Configuração no AndroidManifest.xmlApp Widgets Declarando o Activity de Configuração no AppWidgetProviderInfo
  • 27. Atualizando o App Widget a partir do Activity de Configuração Após realizar a configuração, o Activity tem a responsabilidade de atualizar o App Widget, conforme os passos abaixo. 1. Pega o ID do App Widget a partir do Intent que iniciou a ActivityApp Widgets 2. Realiza as configurações necessárias 3. Ao completar a configuração, atualiza o App Widget. 4. Cria-se o Intent de retorno com o resultado da Activity e finaliza a Activity.
  • 28. Localização e Mapas Integrando a sua aplicação com o Google Maps
  • 29. android.location.LocationManager Android provê acesso aos serviços de localização suportados pelo dispositivo através do pacote android.locator, que provê APIs para determinar a localização do dispositivo.Localização e Mapas Usa-se o método getSystemService() para obter uma instância de LocationManager. A partir desta, a aplicação pode fazer três coisas: • Consultar a lista de todos os LocationProviders para saber qual foi a última localicação do usuário; • Registro/desregistro de atualizações periódicas da localização do usuário a partir de um provedor de local (especificado pelo critério ou nome); • Registro/desregistro de um dado Intent para ser lançado se o dispositivo estiver a uma certa proximidade de um dado destino.
  • 30. Biblioteca externa do Google Maps Através do pacote com.google.android.maps (parte do add-on Google APIs para Android SDK) é possível baixar e renderizar mapas do Google, com uma variedade de opções e controles.Localização e Mapas A classe chave do pacote é com.google.android.maps.MapView, que é uma subclasse de ViewGroup. Um MapView mostra o mapa com os dados obtidos diretamente do serviço Google Maps. • Quando o MapView está com foco, os toques e teclas são capturados para mover e efetuar zoom no mapa automaticamente, incluindo requisições de rede para obtenção de novas áreas do mapa; • O MapView provê todos os elementos de interface necessários para controlar o mapa; • A aplicação também pode usar a classe MapView para desenhar diversos marcadores sobre o mapa.
  • 31. Requisitando atualização de localização Através do método requestLocationUpdates() de LocationManager, passando um LocationListener como parâmetro que deve implementar diversos métodos que são invocados quando há mudança de localização ou status doLocalização e Mapas serviço. Os parâmetros de requestLocationUpdates() estão explicitados a seguir: • O primeiro parâmetro é o tipo de provedor de localização a ser usado, GPS_PROVIDER ou NETWORK_PROVIDER; • O segundo parâmetro é o tempo mínimo para notificar atualizações; • O terceiro parâmetro é a distância mínima para notificar atualizações; • Por fim, o quarto e último parâmetro é o LocationListener que recebe as chamadas callback de notificação das atualizações.
  • 32. Requisitando atualização de localização Exemplo de como implementar um LocationListener e utilizá-lo com o método requestLocationUpdates() de LocationManager. Nesse exemplo, usa-se o Android Network Location Provider e não há tempo ou distância mínima para notificação (asLocalização e Mapas notificações serão tão frequentes quanto possível).
  • 33. Requisitando permissões ao usuário Para que se possa receber as notificações de localização, seja através de NETWORK_PROVIDER ou GPS_PROVIDER, é necessário que essa permissão seja requisitada ao usuário, declarando-se ACCESS_COARSE_LOCATION (apenasLocalização e Mapas NETWORK_PROVIDER) ou ACCESS_FINE_LOCATION (ambos os provedores, rede e GPS) no AndroidManifest.xml.
  • 34. Tutoriais e aplicações a serem desenvolvidas Há diversos tutoriais que podem complementar os estudos iniciais de desenvolvimento e aplicações em Android.Para estudos posteriores • Notepad Tutorial – Aplicação de bloco de notas que originou a aplicação NotePad de exemplo do Android SDK. Explica o desenvolvimento passo a passo - http://developer.android.com/resources/tutorials/notepa d/index.html; • Hello Testing e Activity Testing – Testes em Android - http://developer.android.com/resources/tutorials; • MusicDroid - Audio Player - Tutorial de como programar um player de música passo a passo - http://www.helloandroid.com/tutorials/musicdroid-audio-player- part-i.
  • 35. Links • developer.android.com – Portal oficial de desenvolvimento para Android. SDK, Guia de Desenvolvimento, Documentação completa; • helloandroid.com – Notícias, Tutoriais de Desenvolvimento, Aplicações, Dispositivos e mais sobre Android;Referências • androidsnippets.org – Trechos de código abordando diversos recursos do Android; • code.google.com/p/krvarma-android-samples - Diversas aplicações de exemplo (com código-fonte) englobando câmera, GPS, gestos, Text to Speech, detecção de face e etc.
  • 36. What’s Your Message?OBRIGADO!