Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof: Ricardo Quintão email: ricardo.quintao@uva.br Site: www.rgquintao.com.br Criando um Projeto Android Vamos agora criar o nosso primeiro projeto Android. Na criação de um projeto novo, o ADT já cria um programa de exemplo que escreve na tela a mensagem “Hello World”. Este programa, devido a sua extrema simplicidade, será o nosso primeiro ponto de análise. Vejamos agora o passo a passo para a criação deste projeto. Criando um Projeto Android Vá até: File NewAndroid Application Project. Preencha os campos indicados. Comece pelo Nome da Aplicação. O Nome do Projeto e do Pacote serão preenchidos automaticamente a partir do Nome da Aplicação. Em seguida, defina as APIs do seu projeto. Vamos trabalhar com a API 19. Temos os seguintes campos: • Minimum Required SDK: que representa a menor API que o programa será compatível. • Target SDK: que representa a API final desejada. • Compile With: que representa a API utilizada na compilação. • Theme: que representa temas já pré-definidos. No nosso caso, não definiremos um tema. Criando um Projeto Android Na tela seguinte, mantenha as opções default. Criando um Projeto Android Na tela seguinte, será feita a escolha de um ícone para o aplicativo. Vamos usar o ícone default. Caso você possua alguma outra imagem que deseje utilizar como ícone, é só indicar em “Image File”. Criando um Projeto Android Na tela seguinte, devemos escolher se desejamos que o SDK crie uma Activity automaticamente. Caso seja marcado, devemos dizer que tipo de Activity será esta. Vamos utilizar uma Activity em branco. Faça as marcações conforme a figura ao lado. Criando um Projeto Android A próxima tela pede pelo nome da Activity e o nome do Layout. • Activity Name: representa tanto o nome do Arquivo Java como também o nome da Classe que será inicializada a aplicação. • Layout Name: representa o nome do arquivo “.xml” que conterá as especificações da tela. Estes campos já vem preenchidos com valores padrões mas, mudaremos para nomes mais sugestivos, como mostra a figura ao lado. No nosso caso: Activity Name: Activity_Tela1 Layout Name: tela1 Aguarde um tempo que o projeto será criado. No final teremos a tela ao lado. Provavelmente o seu Layout de Tela estará configurado para utilizar a API 23. Como nossa aplicação foi projetada para a API 19, faremos então a mudança para esta API. Criando um Projeto Android Vamos rodar o programa. É aconselhável inicializar primeiro a AVD e destravá-la. No Eclipse, clique com o botão direito no nosso projeto, “Mensagem”. Vá até Run as Android Application. Se a aplicação não rodar automaticamente na AVD, provavelmente ela foi apenas instalada. Criando um Projeto Android Vá até as aplicações da AVD, procure pela sua aplicação e então execute-a. O resultado deve ser semelhante ao da figura ao lado. Criando um Projeto Android A aplicação será executada mostrando a tela ilustrada ao lado. Criando um Projeto Android Como a Activity foi criada automaticamente, vamos apagar as linhas após a chave que se encontram logo após a instrução “setContentView”, e mantendo a última chave. A figura ao lado mostra esse procedimento. Criando um Projeto Android Criando um Projeto Android No final, o nosso programa se resume às linhas ao lado. O Android SDK montou a estrutura de diretórios ao lado. Vamos compreendê-la. src: o local onde são armazenados os códigos-fontes de um aplicativo Android. O arquivo Activity_tela1.java é uma classe que estende a Activity e foi criado automaticamente pelo Eclipse. Na arquitetura Android, uma Activity representa uma tela do seu aplicativo. Além disso, ela é responsável por realizar os tratamentos de eventos gerados na interface. Por exemplo, um clique em um botão, um clique longo em um elemento de lista, e assim por diante. gen: esta pasta contém um arquivo chamado R.java, sendo um arquivo de referência, contendo um endereço em hexadecimal para cada recurso da aplicação, podendo ser uma imagem, tela, componente visual, entre outros. É este arquivo o elo entre uma interface gráfica (formato XML) e o código-fonte (formato Java). Importante: não altere esse arquivo, quando um novo recurso for adicionado, o Eclipse atualizará a classe R automaticamente assim que o projeto for salvo. assets: a pasta que contém os recursos estáticos do projeto, ou seja, que não dependem da diferença de densidade ou do tamanho do display. Um bom exemplo disso são as fontes customizadas de texto ou, ainda, os arquivos utilizados pelo engine de jogos. Criando um Projeto Android Criando um Projeto Android bin: nesta pasta ficam os arquivos resultantes da compilação como o .dex e o .apk. libs: contém as bibliotecas externas utilizadas pelo aplicativo. É importante ressaltar que, mesmo assim, será necessário configurar o class path do projeto para que o mesmo reconheça essa biblioteca. res: a pasta que contém os recursos do projeto, sendo principalmente os objetos gráficos (ícones, banners, backgrounds, etc), layouts, textos e menus usados na interface do usuário. Automaticamente foram criados, junto com o aplicativo, alguns pacotes, como os drawables que receberam as imagens utilizadas no aplicativo e o layout, que contém o arquivo tela1.xml. Esse arquivo possui as informações referentes aos componentes visuais e ao layout da tela principal da aplicação. Criando um Projeto Android Arquivos Importantes: Activity_tela1.java: este arquivo contém o código fonte Java da nossa aplicação. É neste arquivo que as nossas classes são definidas e os objetos criados e executados. tela1.xml: este arquivo contém, no formato xml, os componentes da tela que será apresentada na Activity. R.java: este arquivo define a classe “R” que possui várias classes de constantes. Estas classes contém a identificação hexadecimal de todos os recursos definidos no projeto fazendo do arquivo “R.java” o elo de ligação destes recursos com o arquivo principal Java. Não altere este arquivo!!! Ele é criado automaticamente pelo Eclipse. *.xml *.java R.java android:id=“@+id/nome” Tipo Componente c = (Tipo Componente) findViewById(R.id.nome); public static final class id { public static final int nome = 0x7f050001; } @ referência ao arquivo R.java + acrescentar id classe id nome constante de identificação Este arquivo é criado e atualizado automaticamente pelo Eclipse. Não altere o seu conteúdo!!!! O método findViewById( ) retorna o ponteiro do objeto identificado no seu parâmetro. Vamos analisar o arquivo Activity_tela1.java apresentado ao lado. Na linha 1 temos a identificação do projeto. Nas linha 3 e 4 são feitas as importações das classes do Android que serão usadas na aplicação. Criando um Projeto Android Activity_tela1.java 1: package com.example.mensagem; 2: 3: import android.app.Activity; 4: import android.os.Bundle; 5: 6: public class Activity_tela1 extends Activity { 7: 8: @Override 9: protected void onCreate(Bundle savedInstanceState) { 10: super.onCreate(savedInstanceState); 11: setContentView(R.layout.tela1); 12: } 13: 14: } Na linha 6 é definida a nossa classe Activity_tela1. Ela herda (extends) da classe Activity da biblioteca android. Na linha 8 é informado ao compilador que iremos sobrescrever um método herdado. Esta linha não é executada, ela é só um indicativo para evitar algum erro de digitação no nome do método sobrescrito. Criando um Projeto Android Activity_tela1.java1: package com.example.mensagem; 2: 3: import android.app.Activity; 4: import android.os.Bundle; 5: 6: public class Activity_tela1 extends Activity { 7: 8: @Override 9: protected void onCreate(Bundle savedInstanceState) { 10: super.onCreate(savedInstanceState); 11: setContentView(R.layout.tela1); 12: } 13: 14: } Na linha 9 é indicado o método que será sobrescrito. No nosso caso, é o método onCreate(). Na linha 10 é chamado o método onCreate( ) da classe pai (super) para que a Activity seja criada. Na linha 11 é feita a apresentação da tela. O arquivo tela1.xml contém a descrição da tela a ser apresentada. Criando um Projeto Android Activity_tela1.java 1: package com.example.mensagem; 2: 3: import android.app.Activity; 4: import android.os.Bundle; 5: 6: public class Activity_tela1 extends Activity { 7: 8: @Override 9: protected void onCreate(Bundle savedInstanceState) { 10: super.onCreate(savedInstanceState); 11: setContentView(R.layout.tela1); 12: } 13: 14: } Vamos analisar o arquivo tela1.xml apresentado ao lado. Na linha 1 temos a definição do Layout. No caso, está sendo utilizado um layout relativo. As linhas 2 e 3 definem dois espaços de nomes: android e tools. As linhas 4 e 5 definem a largura e a altura da tela respectivamente. A cláusula “match_parent” determina que o parâmetro em questão coincida com o seu pai, no caso, o tamanho total da tela. Criando um Projeto Android tela1.xml 1: <RelativeLayout 2: xmlns:android="http://schemas.android.com/apk/res/android" 3: xmlns:tools="http://schemas.android.com/tools" 4: android:layout_width="match_parent" 5: android:layout_height="match_parent" 6: android:paddingBottom="@dimen/activity_vertical_margin" 7: android:paddingLeft="@dimen/activity_horizontal_margin" 8: android:paddingRight="@dimen/activity_horizontal_margin" 9: android:paddingTop="@dimen/activity_vertical_margin" 10: tools:context="com.example.mensagem.Activity_tela1" > 11: 12: <TextView 13: android:layout_width="wrap_content" 14: android:layout_height="wrap_content" 15: android:text="@string/hello_world" /> 16: 17: </RelativeLayout> Nas linhas 6 à 9 são definidos os espaçamentos a partir das respectivas margens. Na linha 10 temos a definição de qual Activity esta tela está atrelada. Na linha 12 é definida uma View (objeto visual). No caso, uma TextView, isto é, um visualizador de texto. Na linha 13 e 14 são definidos os tamanhos, largura e altura, respectivamente. A cláusula “wrap_content” quer dizer “adequar ao conteúdo”. Criando um Projeto Android tela1.xml 1: <RelativeLayout 2: xmlns:android="http://schemas.android.com/apk/res/android" 3: xmlns:tools="http://schemas.android.com/tools" 4: android:layout_width="match_parent" 5: android:layout_height="match_parent" 6: android:paddingBottom="@dimen/activity_vertical_margin" 7: android:paddingLeft="@dimen/activity_horizontal_margin" 8: android:paddingRight="@dimen/activity_horizontal_margin" 9: android:paddingTop="@dimen/activity_vertical_margin" 10: tools:context="com.example.mensagem.Activity_tela1" > 11: 12: <TextView 13: android:layout_width="wrap_content" 14: android:layout_height="wrap_content" 15: android:text="@string/hello_world" /> 16: 17: </RelativeLayout> A linha 15 contém o texto a ser exibido nesta View. Na linha 17 temos o fechamento do RelativeLayout. Em algumas linhas (6, 7, 8, 9 e 15), o parâmetro tem o formato abaixo: “@referência/constante” Ele diz para pegar na referência indicada o valor da constante informada. No caso da linha 15, o texto propriamente dito está no arquivo “string.xml” na constante “hello_world”. Criando um Projeto Android tela1.xml 1: <RelativeLayout 2: xmlns:android="http://schemas.android.com/apk/res/android" 3: xmlns:tools="http://schemas.android.com/tools" 4: android:layout_width="match_parent" 5: android:layout_height="match_parent" 6: android:paddingBottom="@dimen/activity_vertical_margin" 7: android:paddingLeft="@dimen/activity_horizontal_margin" 8: android:paddingRight="@dimen/activity_horizontal_margin" 9: android:paddingTop="@dimen/activity_vertical_margin" 10: tools:context="com.example.mensagem.Activity_tela1" > 11: 12: <TextView 13: android:layout_width="wrap_content" 14: android:layout_height="wrap_content" 15: android:text="@string/hello_world" /> 16: 17: </RelativeLayout> Ao lado listamos os arquivos “dimens.xml” e “strings.xml”. Estes arquivos contém as constantes indicadas no arquivo “tela1.xml”. Eles estão localizados em “res\values”. Estas constantes também estarão mapeadas no arquivo “R.java”. Criando um Projeto Android dimens.xml 1: <resources> 2: 3: <!-- Default screen margins, per the Android Design guidelines. --> 4: <dimen name="activity_horizontal_margin">16dp</dimen> 5: <dimen name="activity_vertical_margin">16dp</dimen> 6: 7: </resources> strings.xml 1: <?xml version="1.0" encoding="utf-8"?> 2: <resources> 4: 5: <string name="app_name">Mensagem</string> 6: <string name="hello_world">Hello world!</string> 7: <string name="action_settings">Settings</string> 8: 9: </resources> Prof: Ricardo Quintão email: ricardo.quintao@uva.br Site: www.rgquintao.com.br
Compartilhar