Android Aula 3
-
Upload
erisvaldo-junior -
Category
Technology
-
view
4.634 -
download
0
description
Transcript of Android Aula 3
Erisvaldo Gadelha Saraiva Júnior
Faculdade de Tecnologia de João Pessoa (FATEC-JP)Especialização em Desenvolvimento para Dispositivos MóveisDisciplina: Tecnologias para Dispositivos Móveis
Android (Parte 3)
E-mail: [email protected]: http://erisvaldojunior.com
Twitter: @erisvaldojunior
Roteiro da Aula
Recursos e Técnicas importantes para Android
TÉCNICAS E EXEMPLOS
LOG, LOCALES E WIDGETS
LOCALIZAÇÃO E MAPAS
TÉCNICAS E EXEMPLOS
Diversas Técnicas e Exemplos de Código em Android
Spla
sh S
cre
en
Como criar uma Splash ScreenBasta ter uma Activity declarada na categoria LAUNCHER noAndroidManifest.xml que, após 3 segundos, invoca outra.
SplashScreen.java
AndroidManifest.xml
Spla
sh S
cre
en
Exemplo Clássico de Splash ScreenImagem no meio da tela
splash.xml
Tela
Ch
eia
(Fu
ll Sc
ree
n)
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.xml
Modo 1 – Chamar setFullScreen() no onCreate() da Activity
Modo 2 – Definir android:theme na tag <activity> do AndroidManifest.xml
Leit
ura
de
XM
Lorg.xml.sax.helpers.DefaultHandlerCria-se uma classe que herda de Default Handler eimplementa-se os métodos startElement(), characters() eendElement().
Ob
jeto
s In
ten
tObjetos IntentSão compostos por Component Name, Action, Data e Category.
Invo
can
do
ap
licaç
õe
s G
oo
gle Intents invocando aplicações Google
Log, Locales e Widgets
Log, Internacionalização e Widgets em Android
Trab
alh
and
o c
om
Lo
gandroid.util.LogFerramenta de Log do Android. Permite imprimir logs de atécinco tipos:
Trab
alh
and
o c
om
Lo
gLogCatPermite a visualização do Log. Disponível na perspectiva deDebug do ADT Plugin no Eclipse.
Inte
rnac
ion
aliz
ação
Adaptando a aplicação para diferentes linguagensO primeiro passo é planejar como a aplicação deve aparecer(textos e imagens) em diferentes regiões e línguas. Nesseplanejamento, estabelece-se também um comportamento/localpadrão.
Inte
rnac
ion
aliz
ação
Organizando os recursosO segundo passo é mapear, para cada linguagem/país suportado,o caminho do arquivo strings.xml que irá conter os textos naquelalinguagem bem como a pasta de imagens específica para alinguagem desejada.
Dica: pode-se criar, por exemplo, res/drawable-de/ para englobartodos os aparelhos com a língua definida como Alemão,independente da sua localização.
Inte
rnac
ion
aliz
ação
Criando o strings.xml para cada linguagemCria-se um novo “Android XML File” a partir do plugin ADT noEclipse. No assistente, defin-se o nome do arquivo comostrings.xml e seleciona-se a configuração “Language” com umqualificador de duas letras indicando a linguagem desejada. Issofará com que o assistente crie o arquivo na pasta correta.
Inte
rnac
ion
aliz
ação
Criando o strings.xml para cada linguagem
Inte
rnac
ion
aliz
ação
Testando a aplicação no emulador
Ap
p W
idge
ts
App Widgets
São aplicações em miniatura que podem ser embutidas emoutras aplicações (como a Home) e receber atualizaçõesperiódicas. São referenciadas como Widgets na interface dousuário.
Para criar um App Widget, necessita-se do seguinte:
• AppWidgetProviderInfo – objeto que descreve os metadados doWidget, como o layout, frequência de atualização e a classeAppWidgetProvider. É definido em XML;• AppWidgetProvider – Define os métodos básicos que permitem aprogramação do Widget. Baseado em eventos de Broadcast. Recebe-se mensagens de broadcast quando o App Widget é ativado,atualizado, desativado e removido.
Ap
p W
idge
tsApp WidgetsAlém disso, é preciso definir o View Layout, correspondente aolayout inicial do App Widget, em XML.
Adicionalmente, pode-se implementar uma Activity de configuraçãodo App Widget. Trata-se de um Activity opcional que é abertoquando o usuário adiciona o Widget e permite que o usuáriomodifique as configurações do mesmo em tempo de criação.
Ap
p W
idge
tsDeclarando-se um App WidgetPrimeiramente, declara-se a classe que herda deAppWidgetProvider no AndroidManifest.xml, conformemostrado abaixo.
• <receiver> – elemento que especifica o AppWidgetProvider usadopelo App Widget, através do atributo android:name;• <intent-filter> - inclui uma <action> que especifica que oAppWidgetProvider aceita o broadcast APPWIDGET_UPDATE;• <meta-data> - especifica o AppWidgetProviderInfo e é definidopelos atributos android:name e android:resource.
Ap
p W
idge
tsDeclarando o AppWidgetProviderInfoDefine as características de um App Widget, como dimensõesmínimas, XML do Layout, frequência de atualização e,opcionalmente, uma Activity de configuração para serinstanciada quando da criação do App Widget.
• minWidth e minHeight especificam a área mínima requerida pelolayout do App Widget.;• updatePeriodMillis é o tempo de chamada do método onUpdate()do AppWidgetProvider. Deve ser longo para que não prejudique oconsumo de bateria;• initialLayout aponta para o arquivo de layout do Widget;• configure especifica a Activity de configuração que deve ser iniciadaquando o usuário adiciona o Widget. É opcional.
Ap
p W
idge
tsCriando o layout de um App WidgetLayouts de App Widgets são baseados em RemoteViews. Estesnão suportam todos os tipos de layout e views. Um objetoRemoteView (e, consequentemente, um App Widget) sósuporta os seguintes layouts e views:
Ap
p W
idge
tsCriando o layout de um App WidgetLayouts de App Widgets são baseados em RemoteViews. Estesnão suportam todos os tipos de layout e views. Um objetoRemoteView (e, consequentemente, um App Widget) sósuporta os seguintes layouts e views:
Ap
p W
idge
tsUsando a classe AppWidgetProviderA classe AppWidgetProvider herda de BroadcastReceiver poisse trata de uma especialização para tratar os broadcasts paraApp Widgets. Quando um evento de broadcast para o AppWidget ocorre, um dos seguintes métodos é invocado:
• onUpdate() – chamado para atualizar o App Widget em intervalosdefinidos por updatePeriodMillis no AppWidgetProviderInfo.Também é chamado quando o usuário adiciona o Widget, excetoquando foi definido um Activity de configuração;• onDeleted() – Chamado quando o Widget é removido do seuaplicativo 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ãoautomaticamente invocados pelo AppWidgetProvider.
Ap
p W
idge
tsExemplo de AppWidgetProviderApp Widget com um botão que inicia uma Activity quando éclicado.
Ap
p W
idge
tsCriando uma Activity de configuraçãoPara permitir que o usuário realize configurações ao adicionarum App Widget, cria-se um Activity de configuração. EssaActivity é automaticamente chamada em tempo de criação doApp Widget.
Declarando o Activity de Configuração no AndroidManifest.xml
Declarando o Activity de Configuração no AppWidgetProviderInfo
Ap
p W
idge
tsAtualizando o App Widget a partir do Activity de ConfiguraçãoApós realizar a configuração, o Activity tem a responsabilidadede atualizar o App Widget, conforme os passos abaixo.
1. Pega o ID do App Widget a partir do Intent que iniciou a Activity
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.
Localização e Mapas
Integrando a sua aplicação com o Google Maps
Loca
lizaç
ão e
Map
asandroid.location.LocationManagerAndroid provê acesso aos serviços de localização suportadospelo dispositivo através do pacote android.locator, que provêAPIs para determinar a localização do dispositivo.
Usa-se o método getSystemService() para obter uma instância deLocationManager. 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 dousuário a partir de um provedor de local (especificado pelo critérioou nome);• Registro/desregistro de um dado Intent para ser lançado se odispositivo estiver a uma certa proximidade de um dado destino.
Loca
lizaç
ão e
Map
asBiblioteca externa do Google MapsAtravés do pacote com.google.android.maps (parte do add-onGoogle APIs para Android SDK) é possível baixar e renderizarmapas do Google, com uma variedade de opções e controles.
A classe chave do pacote é com.google.android.maps.MapView, queé uma subclasse de ViewGroup. Um MapView mostra o mapa com osdados obtidos diretamente do serviço Google Maps.
• Quando o MapView está com foco, os toques e teclas sãocapturados para mover e efetuar zoom no mapa automaticamente,incluindo requisições de rede para obtenção de novas áreas domapa;• O MapView provê todos os elementos de interface necessáriospara controlar o mapa;• A aplicação também pode usar a classe MapView para desenhardiversos marcadores sobre o mapa.
Loca
lizaç
ão e
Map
asRequisitando atualização de localizaçãoAtravés do método requestLocationUpdates() deLocationManager, passando um LocationListener comoparâmetro que deve implementar diversos métodos que sãoinvocados quando há mudança de localização ou status doserviço.
Os parâmetros de requestLocationUpdates() estão explicitados aseguir:
• O primeiro parâmetro é o tipo de provedor de localização a serusado, GPS_PROVIDER ou NETWORK_PROVIDER;• O segundo parâmetro é o tempo mínimo para notificaratualizações;• O terceiro parâmetro é a distância mínima para notificaratualizações;• Por fim, o quarto e último parâmetro é o LocationListener querecebe as chamadas callback de notificação das atualizações.
Loca
lizaç
ão e
Map
asRequisitando atualização de localizaçãoExemplo de como implementar um LocationListener e utilizá-locom o método requestLocationUpdates() de LocationManager.Nesse exemplo, usa-se o Android Network Location Provider enão há tempo ou distância mínima para notificação (asnotificações serão tão frequentes quanto possível).
Loca
lizaç
ão e
Map
asRequisitando permissões ao usuárioPara que se possa receber as notificações de localização, sejaatravés de NETWORK_PROVIDER ou GPS_PROVIDER, énecessário que essa permissão seja requisitada ao usuário,declarando-se ACCESS_COARSE_LOCATION (apenasNETWORK_PROVIDER) ou ACCESS_FINE_LOCATION (ambos osprovedores, rede e GPS) no AndroidManifest.xml.
Par
a e
stu
do
s p
ost
eri
ore
s
Tutoriais e aplicações a serem desenvolvidasHá diversos tutoriais que podem complementar os estudosiniciais de desenvolvimento e aplicações em Android.
• Notepad Tutorial – Aplicação de bloco de notas queoriginou a aplicação NotePad de exemplo do AndroidSDK. Explica o desenvolvimento passo a passo -http://developer.android.com/resources/tutorials/notepad/index.html;
• Hello Testing e Activity Testing – Testes em Android -http://developer.android.com/resources/tutorials;
• MusicDroid - Audio Player - Tutorial de comoprogramar um player de música passo a passo -http://www.helloandroid.com/tutorials/musicdroid-audio-player-part-i.
Ref
erê
nci
as
Links
• developer.android.com – Portal oficial dedesenvolvimento para Android. SDK, Guia deDesenvolvimento, Documentação completa;
• helloandroid.com – Notícias, Tutoriais deDesenvolvimento, Aplicações, Dispositivos e mais sobreAndroid;
• androidsnippets.org – Trechos de código abordandodiversos 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.
What’s Your Message?OBRIGADO!