programando android - aula 3
TRANSCRIPT
Aula 3
Conceitos básicos,
Activities e Views.
No Android, alguns conceitos podem ser
diferentes do que estamos acostumados
a trabalhar. Por se tratar de uma
plataforma móvel, a principal
preocupação que deve-se ter é fazer
com que as tarefas a ser executadas
levem o menor tempo e o menor custo
computacional possível.
Conceitos Básicos
Pacotes
Assim como no Java, o Android organiza
suas classes seguindo um modelo de
pacotes. É possível utilizar qualquer
padrão de projeto compatível com Java.
Deve-se ter o cuidado somente de não
fragmentar excessivamente as classes
para que o custo computacional de
instanciação seja minimizado
Modelo de organização de
pacotes
Modelo de organização de
pacotes
net.android = Pacote inicial onde ficará a classe main da aplicação.
net.android.componentes = Pacote que conterá os componentes customizados criados para a aplicação.
net.android.controller = Pacote que conterá as classes Activity que controlarão as telas da aplicação.
net.android.dao = Classes Data Access Object de acesso ao banco de dados.
net.android.entidade = Classes de entidade (pojo).
net.android.transmissao = Classes destinadas ao acesso e transmissão de dados.
Modelo de organização de
pacotes
É claro que o modelo aqui definido é
apenas uma sugestão de organização
de classes. Nosso curso vai usar esse
modelo como padrão. Você pode usar a
organização que desejar desde que siga
algumas sugestões de padrões de
projeto.
Classe R
O Android cria automaticamente uma classe
chamada “R”. Essa classe em hipótese alguma
deve ser modificada pois ela é gerada
automaticamente cada vez que o projeto é
salvo. Essa classe contém as referências de
todos os views (itens de tela) para ser usadas
nas classes de negócio.
APIs adicionais
No projeto é possível inserir APIs adicionais que
abstraem uma série de funções ao programador.
É possível urilizar uma biblioteca criada
nativamente ou uma biblioteca de terceiros. Se
no momento da criação do projeto for
selecionada uma API adicional na versão do
Android, estas aparecerão aqui.
Arquivos extras adicionais
Se na sua aplicação for necessário adicionar
algum arquivo externo como um vídeo ou um
áudio, estes arquivos devem ser colocados
nessa pasta.
Recursos
No Android, tudo que for tela, imagem e xml é considerado recurso. Um recurso pode ser usado de qualquer parte da aplicação pois eles são variáveis estáticas (não precisam ser instanciados para ser usados).
Os recursos de imagem, por exemplo, podem ser adaptados de acordo com o tamanho da tela que a aplicação rodará. Assim, se o usuário abrir o sistema em um smartphone com tela pequena, o sistema carregará a imagem pequena, se for aberto num tablet, carregará a imagem grande.
Drawables
Drawable (desenhável) são imagens ou
componentes que são desenhados na tela. O
android usa 3 tamanhos padrões de imagem
para desenhar na tela do aparelho de acordo
com seu tamanho de tela.
Para que este recurso seja possível, é necessário
que sejam criadas imagens iguais, com o mesmo
nome, mas com tamanhos diferentes e estas
sejam colocadas nas pastas correspondentes aos
seus tamanhos.
Drawables
Exemplo: Vamos criar o ícone da nossa
aplicação. Esse ícone deve ter um tamanho
proporcional ao tamanho da tela independente
do tamanho da tela do dispositivo que vai rodar
nossa aplicação. Neste caso criamos 3 imagens
com a seguinte configuração:
Tamanho
72x72 px Tamanho
48x48px Tamanho
36x36px
Drawables
As 3 imagens terão o EXATO MESMO NOME e
deverão ser colocadas nas pastas
correspondentes aos seus tamanhos.
drawable_hdpi = imagem de 72 px
drawable_mdpi = imagem de 48 px
drawable_mdpi = imagem de 36 px
Drawables
Deste modo, quando eu precisar usar esta imagem na minha aplicação, basta que eu chame a imagem pelo nome “ic_launcher” que o Android escolherá a imagem que melhor se adequar a meu tamanho de tela.
Se eu quiser que o Android use a mesma imagem independente do tamanho da tela, basta que eu copie as imagens pra pasta drawable-mdpi.
Values
A pasta Values contém arquivos de XML que podem ser usados como substitutos de valores usados no sistema.
Por exemplo: se eu quiser criar um arquivo de textos que devem ser usados nos labels do sistema e que esses textos mudem de acordo com o idioma do aparelho. Eu posso criar um arquivo de texto para cada idioma que o Android irá fazer as devidas substituições.
Values
É possível também criar constantes que
serão usadas no sistema como cores,
tamanhos, backgrounds, sons, etc.
Basta que seja criada uma tag e seja
dada um valor pra ela.
Values
Na hora de usar, basta chamar a tag
usando seguinte anotação:
@string/nome_da_tag
Onde “nome_da_tag” é o nome usado
para criar a tag no arquivo de String.
Values
Tag criada no arquivo string.xml
Tag usada numa tela
AndroidManifest.xml
Arquivo de manifesto contém uma série
de informações que são importantes
para a aplicação. Ele contém as
informações que mostrarão quais
requisitos de hardware o dispositivo
deverá cumprir para rodar a aplicação,
os pacotes importados, as classes de
activity, versão e nome do sistema e
outras informações.
AndroidManifest.xml
1
2
3
4
AndroidManifest.xml 1. Informações de numero e nome da
versão e nome do pacote principal da
aplicação.
2. Carrega bibliotecas externas.
3. Orientação de tela, nome e ícone da
aplicação.
4. Declaração das activities usadas na
aplicação
AndroidManifest.xml
5
6
AndroidManifest.xml 5. Versão mínima do Android necessária
para rodar a aplicação
6. Declaração das necessidades de
hardware que o sistema precisará para
funcionar.
Activities
Activity é a classe que gerencia todos os elementos de tela da aplicação. É ela que recebe as ações disparadas por botões, links, popula listas e mostra efeitos na tela.
Cada tela no Android deve ter sua própria activity, embora seja possível gerenciar várias telas com a mesma activity, é enfaticamente NÃO recomendado.
Activity
View Todo elemento de tela como um botão,
uma lista, um label, etc é chamado de
View.
As views podem ser acessadas
diretamente utilizando o método
“findViewById(“nome_view”)” da classe
Activity.
O Android disponibiliza diversos
componentes de tela (view) e ainda é
possível criar views customizadas
misturando as características de várias
views para criar uma view única.
View