Apostila Android Passo a Passo

Embed Size (px)

Text of Apostila Android Passo a Passo

  • Apostila de

    Programando Passo-a-Passo

    De : Luciano Alves ([email protected])

  • 2

    ndice analtico

    Apresentao ....................................... .............................................................. 3

    Introduo ......................................... ................................................................. 4

    Instalando o Eclipse e o Android ................... .................................................. 4

    Criando a nossa primeira aplicao em Android..... .................................... 10

    Usando Widgets..................................... .......................................................... 18

    Desenvolvendo uma aplicao que soma nmeros ....................................... 18

    Desenvolvendo uma aplicao simples de compras ...................................... 23

    Desenvolvendo uma aplicao de clculo de salrio..................................... 26

    Desenvolvendo uma aplicao de lista telefnica .......................................... 31

    Desenvolvendo uma aplicao que visualiza imagens .................................. 34

    Mudando de layouts ................................. ....................................................... 38

    Desenvolvendo uma aplicao de cadastro ................................................... 42

    Lista de atributos ................................. ............................................................ 53

    Concluso .......................................... .............................................................. 58

  • 3

    Apresentao Esta apostila tem por objetivo mostrar de modo fcil como programar na

    nova plataforma para dispositivos mveis da Google (Andr oid) usando o eclipse, por meio de vrios programas e exemplos bem explicados.

  • 4

    Introduo O Android a nova plataforma do Google voltada para dispositivos mveis.

    Em 5 de novembro de 2007, a empresa tornou pblica a primeira plataforma Open Source de desenvolvimento para dispositivos moveis baseada na plataforma Java com sistema operacional Linux, na qual foi chamada de Android. Essa plataforma mantida pela OHA (Open Handset Alliance), um grupo formado por mais de 30 empresas as quais se uniram para inovar e acelerar o desenvolvimento de aplicaes, servios, trazend o aos consumidores uma experincia mais rica em termos de recursos, menos dispendiosa em ternos financeiros para o mercado mvel.pode-se dizer que a plataforma Android a primeira plataforma mvel completa, aberta e livre.

    Instalando o Eclipse e o Android Para a elaborao desse material, eu fiz o uso do Eclipse Europa (Eclipse

    3.3.1.1 para Windows) e o SDK do Android verso m5- rc15 e o plugin do Android para o Eclipse ADT-0.4.0. Qualquer verso (de preferncia superior) dos programas citados acima serve. Claro , para que toda essa aplicao funcione necessrio que voc tenha instalado antes de tudo, a Mquina Virtual Java (de preferncia a verso 5 ou posterior). Bom, mos a obra.

    Deixo aqui os links para download dos itens citados acima: SDK do Android e o plugin do Android (mesmas verses citadas acima ou

    superiores): http://code.google.com/android/download.html Eclipse Europa (ou superior) http://www.eclipse.org/downloads/ Para saber se voc possui uma Maquina virtual Java, entre no prompt de

    comando de digite a seguinte linha: java version Se mostrar algo parecido como mostra o cdigo abaixo: java version "1.6.0_07" Java(TM) SE Runtime Environment (build 1.6.0_07-b06) Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing) Beleza, voc possui uma mquina virtual Java instalada no seu

    computador, caso contrrio, entre no Site da Sun e faa o seu download. Aqui est o link

  • 5

    http://java.sun.com/javase/downloads/index.jsp Depois de obter os programas e plugins citados acima, o primeiro

    programa e ser instalado o eclipse. Para instalar o eclipse, simplesmente descompacte-o em um local desejado.

    Agora vamos instalar o SDK Android. o mesmo procedime nto do eclipse,

    descompactar em um local apropriado. Por ultimo, vamos instalar o plugin do Android. Para isso, descompacte-o o

    plugin do Android em um local desejado. Agora execute o eclipse, se voc estiver executando-o pela primeira vez,

    ele ir pedir para definir uma pasta padro (um Workspace). Defina a pasta e continue o carregamento do eclipse. Depois de carregado, se for a primeira vez, feche a Janela do Welcome (Bem-vindo). Agora vamos i nstalar o plugin do Android, v no menu Help / Softwares Updates / Find and Install, conforme figura abaixo:

    Selecione a opo Search for new features to install e clique no boto Next. Ser exibida uma tela conforme a figura abaixo:

  • 6

    Feito isso, clique no boto New Local site e indiqu e o diretrio do ADT

    j descompactado no local onde voc extraiu. Para ficar mais claro, dento do diretrio ADT existem dois diretrios __MACOSX e um o utro chamado ADT-x.x.x , selecione este. Feito isso, clique em OK e ser exibida uma caixa de dilogo conforme figura abaixo:

    Na caixa de dilogo acima, basta clicar no boto OK. Pronto! O item foi

    inserido, conforme a figura abaixo. Agora s clicar em Finish.

  • 7

    Depois de clicar em Finish na tela acima, ser mostrado uma nova tela

    conforme figura abaixo.

    Clique no sinal + e faa as selees dos plugins de acord o com a

    prxima figura que exibida a seguir. Caso voc esteja utilizando uma outra verso do plugin voc pode selecionar todas as opes desde nenhuma delas resulte em alguma mensagem de erro, como no caso nesta verso do plugin que utilizei, o ltimo item (Android Editors) no pode ser instalado pois requer a existncia de um outro plugin.

  • 8

    Feito isso, clique no boto Next, e ser exibida uma tela de licensa de

    software. Nesta tela s selecionar a opo I accpet the terms in the license agreement e clique no boto Next. Na prxima tel a, simplesmente clique no boto Finish e na prxima tela, que mostrada na f igura abaixo, clique no boto Install All.

  • 9

    Aps instalar os plugins, ser exibida uma mensagem, conforme a figura

    abaixo, recomendando ao usurio que ele reinicie o eclipse. Simplesmente clique no boto Yes.

    Aps o eclipse ter reiniciado, vamos fazer agora as configu raes para fazer conexo com o emulador do Android. Vamos no menu Window / Preferences. Aberta a caixa de dilogo, selecione o item Android, ser mostrada duas mensagens de erro, ignore-as. Agora vamos indicar o local onde se encontra o emulador do Android, simplesmente clicando no boto Browse... e indicando o seu local onde foi instalado. Feito isso, se a sua tela est de acordo com a tela da figura abaixo, se estiver (mostrando l no topo o ttulo Android) o diretrio indica est correto, s clicar em OK.

  • 10

    Criando a nossa primeira aplicao em Android

    Agora vamos criar um novo projeto Android indo no menu File / New / Other. Selecion o projeto Android conforme figura abaixo. Depois de selecionar, clique em Next:

    Aps clicar em Next na figura acima, ser exibida uma tela conforme

    figura abaixo. Vamos chamar o nosso projeto Project name de ProjetoAndroid. Em Package name vamos digitar com.android.hello. Em Activity name digitaremos AppHello e em Application name digita remos App Hello World, s conferir na figura abaixo. Depois s clicar em Finish.

  • 11

    Pronto! Nosso projeto foi criado. Em Package Explorer, vamos dar uma

    olhada na estrutura do Projeto, simplesmente clicando no boto +. s seguir a figura abaixo, aproveite e abra o arquivo AppHello.java , tambm conforme figura abaixo:

    Bom, agora irei descrever a estrutura de um projeto Android. Observem

    que dentro da pasta ProjetoAndroid existe uma pasta chamada src, dentro dela que ficam os cdigos fonte java das aplicaes. Obser vem que o arquivo AppHello.java se encontra dentro do pacote com.android.hello (Esse pacote tambm uma pasta). Esse arquivo a nossa aplicao Android. Vou descrever em detalhes o arquivo AppHello.java (Veja o cdi go abaixo): package com.android.hello; import android.app.Activity; import android.os.Bundle; public class AppHello extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super .onCreate(icicle); setContentView(R.layout. main ); } }

    Diferentemente das aplicaes comuns de Java, toda classe par a aplicao Android deve ser derivada da classe Activity (A tividade) e possui como mtodo principal, o mtodo onCreate. Dentro desse mtodo ele invoca o mtodo onCreate da super classe passando mesmo parmetro (o icicle), logo aps esse mtodo, vem o mtodo setContentView, responsvel por exibir a tela da minha aplicao , baseado nos layouts xml, por padro ele chama o arquivo main.xml.

  • 12

    Dentro da pasta ProjetoAndroid existe um diretrio cha mado res, onde

    ficam armazenados todos os recursos utilizados pela aplicao. Dentro do diretrio res existem trs diretrios, cada um deles com uma finalidade, que descreverei agora:

    - O diretrio drawable armazena todas as imagens que irei utilizar na minha aplicao. Por padro , ele tem uma imagem cham ada Icon.png, que usada como cone da aplicao Android.

    - O diretrio layout armazena todas os layouts da aplicao Android, que normalmente so arquivos .xml. Para quem conhece a comb inao HTML + JavaScript, o Android similar, a combinao de XML + Java, logo todos os nosso componentes vo ser adicionados usando tags XML. Por padro, o arquivo de layout o main.xml. Veja o seu cdigo abaixo :

    Observe que aps o a primeira linha (prlogo xml), exi ste uma tag chamada LinearLayout, responsvel por organizar os componentes exibidos na tela, por padro os componentes so distribudos na vertica l pelo atributo android:orientation="vertical".

    Dentro desta tag, existe uma chamada TextView, que representa um texto

    a ser exibido na tela , por padro, ele ir exibir Hello World, AppHello atrvs do atributo android:text="Hello World, AppHello".

    - O diretrio values armazena valores estticos que podem ser utilizados por um arquivo .XML. Normalmente esses valores estticos devem ser armazenados no arquivo strings.xml. Veja o cdigo desse ar quivo abaixo : App Hello World

    Observem que dentro desse arquivo eu declaro um valor esttico chamado app_name, cujo valor App Hello World.

  • 13

    Dentro da pasta ProjetoAndroid, existe um arquivo chamado AndroidManifest.xml , esse arquivo o sistema nervoso de uma aplicao em Android. nele que ficam as definies referentes apl icao. Veja o cdigo dele abaixo:

    Observem algumas tags interessantes. A tag possui o atributo android:icon, no qual especifico o cone da aplicao. Como havia citado anteriormente, todas as imagens ficam no diretr io drawable e nesse diretrio existe um arquivo de chamado icon.png que ser o cone da minha aplicao. Logo, para usar esse cone neste atributo, deve -se passar o valor @drawable/icon .Observem que quando informamos o con e, ele deve ser informado sem a extenso (nesse caso, PNG).

    Observem agora a tag , ela define uma atividade (Activity),.

    Dentro desta tag, eu possuo o atributo chamado android:label que define o ttulo da minha aplicao. O ttulo que ser exibido e o valor que est armazenado no valor esttico app_name. Isso obtido pela atribuio android:label="@string/app_name".

    Como havia falado a aplicao Android nada pais do q ue a combinao

    Java + XML. Agora, como um cdigo Java vai acessar um componen te que est escrito em XML ? Ah, essa a finalidade do arquivo R.java, ele funciona como uma interface entre o cdigo Java e o cdigo XML, logo , se eu quiser manipular em tempo de execuo um componente via Java, t enho que fazer interface com esse arquivo. Em breve vamos ver como.

    OBS: O arquivo R.java no pode ser modificado manualmente. Ele

    modificado automaticamente de acordo com as mudanas feita s no projeto. Vamos executar nossa aplicao. Va no Run / Open Run Dia log. Ser

    aberta uma caixa de dilogo com vrios itens. Clique com o boto direito do mouse no item Android Application e selecione a opo New, conforme a figura abaixo:

  • 14

    Feito isso, na propriedade name ao lado digite AppAndroid. Em project

    selecione o projeto que criamos em clicando no boto Bro wse, com o nome de ProjetoAndroid. E por ltimo, em Activity, selecione a atividade com.android.hello.AppHello. Qualquer dvida, siga a figura abaixo:

    Agora s clicar em Run e rodar a aplicao. Quando o e mulador Android

    executado, abre junto com ele uma caixa de dialogo, conforme a figura abaixo. Normalmente, eu desmarco a opo Send usage statistics to Google e clico em Proceed.

    Pra vocs que esto executando pela primeira vez o emulador do Android,

    v que o emulador uma espcie de IPhone vermelho com umas teclas ao lado. No incio mostra o ttulo Android. Depois, vem aquela bolinha vermelha que fica batendo de um lado para outro, quando chega essa parte, normalmente demora em torno de 2 a 10 minutos (dependendo da sua mquina. recomendvel que voc tenha no mnimo 512 MB de memria e um

  • 15

    processador bem rpido para um bom desempenho da execuo) para a aplicao ser exibida , mesmo sendo essa aplicao algo mu ito simples.

    Passado o tempo que citei acima, ser mostrada a nossa aplicao e

    tambm duas mensagens (ou uma dependendo de alguns casos). Se aparecer, clique no boto Force Close ou com o mouse ou com o bo to vermelho central situado no aparelho. Uma demonstrao dessa situao situ a-se na figura abaixo:

    Pronto, nossa aplicao est rodando sem problemas. Veja a figura

    abaixo:

  • 16

    Esse emulador j vem com uma srie de recursos como Navegador,

    Aplicaes de demonstrao, Mapas, Lista de contatos e etc. Se voc neste exato momento fechou o emulador aps a execuo da

    aplicao, vou te dizer uma coisa: No era para voc ter feito isso. Se voc esperou muito tempo para ver essa aplicao em execuo, ao executar novamente a aplicao, voc vai esperar o mesmo. Nessa situa o, ao executar pela primeira vez o emulador, e caso v executar outros programas, minimize o emulador ao invs de fechar, pois se voc esperou muito tempo para executar esse programa, com ele minimizado, ao executar um outro programa, o eclipse vai fazer uso do emulador j aberto em vez de abrir outro, com isso, a aplicao levar em torno de 7 a 12 segundos em mdia para ser executada. Nunca esquea isso!

    Vamos modificar essa aplicao. Minimize o emulador e vamo s abrir o

    arquivo main.xml. Na tag TextView que j havia explicado a vocs, possui um atributo chamdado android:text, onde nele defino o ttulo que ser exibido, modifique agora essa prorpiedade com o seguinte valor (ttulo), conforme o cdigo abaixo:

    android:text="Fala cara, beleza ???"

  • 17

    Feito isso, salve a aplicao e execute novamente a aplica o. O resultado

    mostrado abaixo:

    Vamos fazer mais uma outra modificao na nossa aplicao. A bra

    novamente o arquivo main.xml, observe que ele possui um TextView certo ? Vamos colocar mais duas TextViews, a primeira TextView, no atributo android:text ter o ttulo Primeira frase, o segundo TextView ter o ttulo Segunda Frase e assim sucessivamente. Veja como ficar o cdigo do arquivo main.xml :

    Feito isso, salve o arquivo e execute novamente a aplicao , o resultado

    mostrado na figura abaixo:

  • 18

    E aeh, ta entendo aos poucos como se faz aplicaes Androi d ? Com

    ceretza que sim! Agora vamos aprofundar um pouco e fazer aplicaes mais interessantes com o uso dos Widgets (componentes) existentes na plataforma Android.

    Usando Widgets O que so os widgets ? Os widgets so os componentes que com pem

    uma aplicao Android, como o TextView, um Button, um EditText , um RadioButton e etc.

    Desenvolvendo uma aplicao que soma nmeros

    Vamos criar agora uma aplicao que faa uso de um desses widgets. Crie um novo projeto Android com os seguintes dados:

    Project Name: ProjetoSoma Package Name : com.android.appsoma Activity Name: AppSoma Application Name: Soma Nmeros Criado o projeto, vamos no arquivo main.xml desse projeto. Pelo nome do

    projeto, podemos ver que essa aplicao uma aplicao de calculo. Essa aplicao vai ler dois nmeros inteiros e no final, ir mostrar a soma deles, simples.

    Vamos no arquivo main.xml desse projeto e vamos fazer as seguintes

    modificaes. Quero que voc copie e cole o abaixo e coloque no arquivo main.xml.

  • 19

    Bom, vamos a explicao do cdigo acima. Observem que po ssuo uma

    TextView com o ttulo Digite o primeiro nmero. Logo abaixo dela , eu possuo uma widget do tipo EditText, que exibe um campo onde vou digitar o nmero. Essa widget possui uma propriedade chamada android:id, que serve para dar nome ao componente, ou seja, funciona como um identificador daquele componente.

  • 20

    O nome de um widget, deve estar nesse formato: @+/ Se observamos, o valor desse atributo : @+campo/num1. como se

    campo representasse um grupo e num1 representasse o nome do componente. Voc ir entender essa notao mais a frente.

    Abaixo dessa widget, temos outra do tipo TextView com o ttulo Digite o

    segundo nmero. Depois temos um outro widget do tipo EditText, cujo nome : @+campo/num2.

    Abaixo dessa widget, temos um terceiro TextView com o ttulo Resultado.

    Depois temos um outro widget do tipo EditText, cujo nome : @+campo/res. Por ltimo, temos uma widget do tipo Button, cuja finalidade mostrar um

    boto para podermos clic-lo. Ele possui um ttulo com o valor Mostrar e seu nome : @+botao/btmostrar.

    Beleza, agora vamos abrir o cdigo do arquivo AppSoma.ja va, para

    acessar via cdigo Java, os componentes que adicionamos via XML . Siga os passos aqui descritos para voc como esse processo feito. Aps a linha

    import android.os.Bundle; Digite: import android.widget.*; import android.view.*; Antes da linha: @Override Digite: EditText ednum1,ednum2,edres; Agora vamos a explicao do cdigo acima. Como voc pode ver , os

    widgets tambm podem ser usados no nosso cdigo Java. Se no cdigo XML eu possuir um widget do tipo EditText, para acessar esse componente pelo Java, preciso fazer uso da classe EditText. Cada widget no XML possui o seu respectivo em classe Java, logo, se possui um widget Button, para acessa-lo devo fazer uso da classe Button e assim vai.

    Agora, aps a linha: setContentView(R.layout.main);

    Digite as seguintes linhas de cdigo:

  • 21

    ednum1 = (EditText) findViewById(R.campo.num1); ednum2 = (EditText) findViewById(R.campo.num2); edres = (EditText) findViewById(R.campo.res); Button btMostrar = (Button) findViewById(R.botao.bt mostrar); Agora vou explicar as linhas acima. A linha: EditText ednum1 = (EditText) findViewById(R.campo.n um1); Faz referncia ao primeiro EditText, atravs do mtodo findViewById com

    o parmetro R.campo.num1. Ah, se lembra o nome da primeira EditText que est no cdigo XML? Ela

    se chama @+campo/num1. Vamos entender, observe que para fazer referncia ao EditText pelo

    mtodo findViewById eu passei o parmetro R.campo.nu m1. J na segunda linha, para fazer a referncia segunda EditText, cujo

    nome @+campo/num2, pelo mtodo findViewById, passei o parmetro R.campo.num2.

    Como voc pode ver, estou fazendo uso da classe R, que funciona como

    interface entre o cdigo Java e o arquivo XML. O procedimento o mesmo tanto para o terceiro EditText e o Button. Agora iremos adicionar um evento Click, no nosso Button, pois quando eu

    clicar no boto, ele dever mostrar a soma dos nmeros. Ento, logo aps a linha:

    Button btMostrar = (Button) findViewById(R.botao.bt mostrar);

    Digite:

    btMostrar.setOnClickListener( new View.OnClickListener(){ public void onClick(View arg0) { double num1 = Double. parseDouble (ednum1.getText().toString()); double num2 = Double. parseDouble (ednum2.getText().toString()); double res = num1 + num2; edres.setText(String. valueOf (res)); }

    }); Toda vez que eu clicar no boto, ele ir mostrar o resultado na terceira

    EditText referente ao resultado da soma. timo! Vamos executar a nossa

  • 22

    aplicao ? Para executar faa os mesmos procedimentos qu e j mostrei. O resultado da execuo dessa aplicao voc v na figura abaixo:

    Irei descrever o cdigo do evento Click. O mtodo setOnCl ickLisneter

    serve para definir um evento de Click a um componente. Como parmetro, criamos uma instncia de OnClickListener e dentro dessa inst ncia existe o mtodo chamado onClick, que ser disparado toda vez que o boto for clicado.

    A linha: double num1 = Double. parseDouble ( ednum1.getText().toString()); Cria uma varivel chamada num1 e atribui a ela o valor que est contido

    em num1. Eu fao uso do mtodo parseDouble da classe Double pois o contedo uma String. Observem que chamo o mtodo getText de ednum1 para retornar o contedo. Diferente de muitos mtodos de retorno de String, esse mtodo getText no retorna uma String, mais sim um tipo chamado Editable. Por isso, chamei o mtodo toString de getText para que me retornasse uma string. A descrio da prxima linha e a m esma.

    A linha: edres.setText(String. valueOf (res)); Retorna para a terceira EditText referenciada por edres, a soma dos

    valores. Isso possvel chamado o mtodo setText, como o resultado est num tipo double e setText aceita somente parmetros do tipo String e Editable, fiz a converso desse valor atravs do mtodo valueOf da classe String.

  • 23

    Beleza! Com esse conhecimento obtido at agora, voc j tem capacidade para fazer uma aplicao bsica em Android.

    Bom , ainda temos muitos mais pela frente.

    Desenvolvendo uma aplicao simples de compras Agora vamos fazer uma outra aplicao Android. Essa aplica o vai fazer

    uso da widget CheckBox, que funciona como uma opo onde podemos marcar e desmarcar. Nossa aplicao consiste em um simples sistemas d e compras onde possuo cinco produtos, Arroz (R$ 2,69) , Leite (R$ 5,00) , Carne (R$ 10,00), Feijo (R$ 2,30) e Refrigerante coca-cola (R$ 2,00). Nessa aplicao eu marco os itens que quero comprar e no final o sistema mostra o valor total das compras.

    Como havia dito, a gente vai fazer uso da CheckBox, a estrutura dela a

    similar ao da EditText e TextView, conforme o cdigo a baixo:

    Bom, vamos criar um novo projeto chamado ProjetoCompras. Siga os

    dados do projeto abaixo: Project Name: ProjetoCompras Package Name : com.android.appcompra Activity Name: AppCompra Application Name: Sistema de Compras Vamos no arquivo main.xml desse projeto e coloque o cdig o abaixo:

  • 24

    android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Arroz (R$ 2,69)" />

    Bom , esse o nosso layout com cinco CheckBoxs referentes ao itens de

    compra e um Button, que quando clicado mostra o valor total de compras. Agora vamos modificar o arquivo AppCompra.java. O cdigo desse arquivo

    ser como o cdigo que exibido abaixo:

    package com.android.appcompra; import android.app.Activity; import android.os.Bundle; import android.widget.*; import android.view.*; public class AppCompra extends Activity { CheckBox chkarroz , chkleite , chkcarne , chkfeijao , chkcoca ; @Override public void onCreate(Bundle icicle) { super .onCreate(icicle); setContentView(R.layout. main );

  • 25

    chkarroz = (CheckBox) findViewById(R.item. chkarroz ); chkleite = (CheckBox) findViewById(R.item. chkleite ); chkcarne = (CheckBox) findViewById(R.item. chkcarne ); chkfeijao = (CheckBox) findViewById(R.item. chkfeijao ); chkcoca = (CheckBox) findViewById(R.item. chkcoca ); Button bttotal = (Button) findViewById(R.bo tao. bttotal ); bttotal.setOnClickListener( new View.OnClickListener(){ public void onClick(View arg0) { double total=0; if ( chkarroz .isChecked()) total += 2.69; if ( chkleite .isChecked()) total += 5.00; if ( chkcarne .isChecked()) total += 10.00; if ( chkfeijao .isChecked()) total += 2.30; if ( chkcoca .isChecked()) total += 2.00; showAlert( "Valor total da compra" , 0,String. valueOf (total), "OK" , false ); } }); }

    } Descrevendo o cdigo do evento click: Dentro do evento eu cri o uma

    varivel chamada total que armazena o valor total da compra. Observe que eu tenho cinco estruturas ifs onde cada uma verifica se um determinado item foi marcado, se foi, incrementa o valor do item com o valor da varivel total . Observe que eu fao uso do mtodo showAlert cuja finalidade mostrar uma mensagem na tela. A mensagem a ser mostrada o valor total da compra.

    Os parmetros do showAlert so: showAlert ( CharSequence title, int iconId, CharSequence messag e,

    CharSequence buttonText, boolean cancelable ) title : Corresponde ao ttulo da mensagem iconId: Corresponde ao cone a ser exibido, quando o valor zero, significa

    que no ser usado nenhum cone. message: Corresponde a mensagem cancelable: Define se ela ser cancelvel. Vamos roda nossa aplicao ? O resultado voc confere na figura abaixo:

  • 26

    Desenvolvendo uma aplicao de clculo de salrio Bom, agora vamos fazer uma outra aplicao. Essa aplicao que vamos

    desenvolver agora consiste em um sistema que vai ler o salrio de um funcionrio e vai permitir que voc escolha o seu percentual de aumento que pode ser de 40% , 45% e 50% e no final o sistema ir mostrar o salrio reajustado com o novo aumento. Bom, vamos l! Crie um novo projeto Android com os seguintes dados:

    Project Name: ProjetoSalario Package Name : com.android.appsal Activity Name: AppSalario Application Name: Clculo do salrio Nessa aplicao vamos fazer uso da widget RadioButton, que funciona

    como um item de opo, podendo ser selecionado entre vrios outros. Veja a sua sintaxe abaixo:

    Porm, para que a mltipla escolha funcione, necessrio que os RadioButtons fiquem dentro de uma RadioGroup, que funciona como agrupador de RadioButons. Veja um exemplo abaixo:

  • 27

    Executando a aplicao, ser exibido a seguinte tela:

  • 28

    Bom, agora vamos fazer a nossa aplicao. No arquivo main.x ml, coloque o cdigo abaixo:

  • 29

    No arquivo AppSalario.java, coloque o cdigo abaixo:

    package com.android.appsal; import android.app.Activity; import android.os.Bundle; import android.widget.*; import android.view.*; public class AppSalario extends Activity { @Override public void onCreate(Bundle icicle) { super .onCreate(icicle); setContentView(R.layout. main ); Button btmostrar = (Button) findViewById(R. botao. btmostrar ); btmostrar.setOnClickListener( new View.OnClickListener(){ public void onClick(View arg0) { double salario, novo_sal; EditText edsalario = (EditText) findViewById(R.campo. edsalario ); salario = Double. parseDouble (edsalario.getText().toString()); RadioGroup rg = (RadioGroup) findViewById(R.opcao. rbopcoes ); int op = rg.getCheckedRadioButtonId(); if (op==R.opcao. rb40 ) novo_sal = salario + (salario * 0.4); else if (op==R.opcao. rb45 ) novo_sal = salario + (salario * 0.45); else novo_sal = salario + (salario * 0.5); showAlert( "Novo salrio" , 0, "Seu novo salrio : R$" + String. valueOf (novo_sal), "OK" , false ); } }); } }

  • 30

    Vamos a explicao de alguns cdigos interessantes. Dentro do evento click, eu realizo o clculo do novo salrio do funcionrio. Os primeiros cdigos do evento so similares a de programas anteriores que j foram devidamente explicados. A linha:

    int op = rg.getCheckedRadioButtonId(); Cria uma varivel op e retorna para ela o Id da opo selecionada, ou seja,

    qual RadioButton foi selecionada. Agora na condio:

    if (op==R.opcao. rb40 )

    Verifico se a opo de 40% foi selecionada, se for, real ize o clculo do salrio com o reajuste de 40%. A mesma explicao e vlida para o clculo dos outros reajustes. Agora vamos executar a nossa aplicao. O resultado voc v na figura abaixo:

    At aqui voc j pode fazer timas aplicaes em Android.

  • 31

    Desenvolvendo uma aplicao de lista telefnica Agora vamos fazer uma nova aplicao em Android. Essa aplic ao

    consiste em uma lista telefnica j pronta com contatos. Quando selecionamos um contato, ele mostra na tela uma mensagem com o nome selecionado. A nossa aplicao vai fazer uso do widget chamado ListView, q ue exiba uma lista contendo valores que podem ser selecionados. Veja a estrutura de uma ListView abaixo:

    Bom, vamos criar um novo projeto chamado ProjetoLista. Siga os dados

    abaixo: Project Name: ProjetoLista Package Name : com.android.applist Activity Name: AppList Application Name: Lista de contatos No arquivo main.xml, coloque o seguinte cdigo:

  • 32

    package com.android.applist; import android.app.Activity; import android.os.Bundle; import android.widget.*; import android.widget.AdapterView.OnItemClickListener; import android.view.*; public class AppList extends Activity { public ListView lista ; public void onCreate(Bundle icicle) { super .onCreate(icicle); setContentView(R.layout. main ); ArrayAdapter adapter = new ArrayAdapter( this ,android.R.layout. simple_list_item_1 , contatos ); lista = (ListView) findViewById(R.id. lista ); lista .setAdapter(adapter); lista .setOnItemClickListener( new OnItemClickListener(){ public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { showAlert( "Contato selecionado" ,0, lista .getSelectedItem().toString(), "OK" , false ); } }); } static final String[] contatos = new String[] { "Alline" , "Lucas" , "Rafael" , "Gabriela" , "Silvana" }; }

    Vamos analisar alguns cdigos acima. A linha

    static final String[] contatos = new String[] { "Alline" , "Lucas" , "Rafael" , "Gabriela" , "Silvana" };

    Cria uma constante chamada contatos, onde nela coloco alguns nomes.

    Essa constante vai ser utilizada pela nossa lista. Para que eu posssa carregar dos dados em uma ListView, preciso fazer uso da classe ArrayAdapter, como mostra a instruo abaixo:

  • 33

    ArrayAdapter adapter = new ArrayAdapter( this ,android.R.layout. simple_list_item_1 , contatos );

    A instruo mostrada acima cria uma instncia da classe Arra yAdapter

    chamada adapter onde carrego nela o vetor de Strings da constante contatos. A instruo:

    lista .setAdapter(adapter); Carrega os valores para a ListView, que est contido o objeto adapter. Como havia falado, quando clicssemos em um item, o sistema mostraria

    uma mensagem do item selecionado. Isso conseguido fazendo uso da interface OnItemClickListener, como mostra a instruo abai xo:

    lista .setOnItemClickListener( new OnItemClickListener(){

    public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { showAlert( "Contato selecionado" ,0, lista .getSelectedItem().toString(), "OK" , false ); } });

    Toda vez que clicarmos em um item da lista, o mtodo onItemClick ser

    disparado e ser executado o comando abaixo: showAlert( "Contato

    selecionado" ,0, lista .getSelectedItem().toString(), "OK" , false ); Que exibe o item selecionado. A obteno do item clica do e feita

    chamando o mtodo getSelectedItem() . Porm, como ele retorna um tipo Object, preciso converter para String o item clicado, atravs do mtodo toString.

    Vamos executar a aplicao. O resultado voc v na figura abaixo:

  • 34

    Desenvolvendo uma aplicao que visualiza imagens Agora vamos desenvolver mais uma aplicao. Essa aplicao per mite

    que voc visualize images, tudo atravs do widget ImageView. A sua estrutura voc confere abaixo:

    Agora crie um novo projeto conforme os dados abaixo: Project Name: ProjetoImagem Package Name : com.android.appimage Activity Name: AppImage Application Name: Visualizando Imagens Antes de codificar, quero que voc coloque duas imagens JPEG (com a

    extenso .jpg) dentro da pasta res/drawable . Um arquivo deve se chamar foto1.jpg e o outro foto2.jpg. Para importar um arquivo, clique com o boto direito do mouse e selecione Import, depois selecione File System. Clique no boto browser para selecionar o diretrio onde se encon tram as imagens, depois de selecionado, marque os dois arquivos (imagens) para que eles sejam importados para a pasta res/drawable . Veja a figura abaixo:

  • 35

    Depois disso, s clicar em Finish. Agora no arquivo main.xml, coloque o cdigo abaixo:

  • 36

    />

    Vamos analisar o atributo android:src da widget ImageView. Esse atributo

    permite especificar a imagem a ser aberta, no caso, ser exibida a imagem foto1.jpg atravs do seguinto valor: @drawable/foto1. @drawable corresponde a pasta onde se encontra a imagem e foto1 o nome da imagem, que deve ser informada sem a sua extenso. Logo se eu ver de inicio a segunda imagem, usaria o seguinte valor: @drawable/foto2.

    Agora no arquivo AppImage.java coloque o cdigo abaixo :

    package com.android.appimage; import android.app.Activity; import android.os.Bundle; import android.view.*; import android.widget.*; public class AppImage extends Activity { /** Called when the activity is first created. */ ImageView imagem; TextView txt ; @Override public void onCreate(Bundle icicle) { super .onCreate(icicle); setContentView(R.layout. main ); Button btfoto1 = (Button) findViewById(R.bo tao. bt1 ); Button btfoto2 = (Button) findViewById(R.bo tao. bt2 ); imagem = (ImageView) findViewById(R.id. imagem); txt = (TextView) findViewById(R.label. label ); btfoto1.setOnClickListener( new View.OnClickListener(){ public void onClick(View arg0) { imagem.setImageResource(R.drawable. foto1 ); txt .setText( "Imagem: Foto 1" ); } }); btfoto2.setOnClickListener( new View.OnClickListener(){ public void onClick(View arg0) { imagem.setImageResource(R.drawable. foto2 ); txt .setText( "Imagem: Foto 2" ); } });

  • 37

    } } Agora vamos analisar alguns trechos de cdigos. Vamos no evento Click

    referente a abertura da primeira imagem. O cdigo:

    imagem .setImageResource(R.drawable. foto1 );

    responsvel por abrir a imagem foto1.jpg e exibi-l a no componente. Observe que foi passado o parmetro R.drawable.foto1 onde drawable corresponde a pasta e foto1 corresponde ao arquivo foto1.jpg. Logo aps vem o cdigo:

    txt .setText( "Imagem: Foto 1" ); Cuja finalidade mudar o ttulo da TextView , de acordo com a String

    passada como parmetro. O comentrio acima o mesmo para o segundo boto referente a abertura

    da segunda imagem. Vamos executar a nossa aplicao. O resultado voc v nas imagens

    abaixo:

    (Foto 1)

  • 38

    (Foto 2)

    Mudando de layouts

    At agora, fizemos aplicaes em Android que utilizassem um nico layout.

    Agora vamos fazer aplicaes Android que utilizem mais de um layout. Vamos criar um novo projeto de demonstrao chamado Proje toLayout,

    conforme os dados abaixo:

    Project Name: ProjetoLayout Package Name : com.android.applayout Activity Name: AppLayout Application Name: Mudando de layouts No arquivo main.xml, coloque o cdigo que exibido aba ixo:

  • 39

    android:layout_height="fill_parent" >

    timo! Agora dentro da pasta res/layout , crie um novo arquivo em

    branco chamado tela2.xml e coloque o cdigo abaixo:

    Depois disso, modifique o arquivo AppLayout.java, conforme o cdigo

    abaixo:

    package com.android.applayout; import android.app.Activity; import android.os.Bundle; import android.view.*; import android.widget.*; public class AppLayout extends Activity { /** Called when the activity is first created. */ public void CarregaTelaPrincipal() { setContentView(R.layout. main ); Button bt1 = (Button) findViewById(R.botao. botao1 ); bt1.setOnClickListener( new View.OnClickListener(){ public void onClick(View arg0) { CarregaTela2();

  • 40

    } }); } public void CarregaTela2() { setContentView(R.layout. tela2 ); Button bt2 = (Button) findViewById(R.botao. botao2 ); bt2.setOnClickListener( new View.OnClickListener(){ public void onClick(View arg0) { CarregaTelaPrincipal(); } }); } @Override public void onCreate(Bundle icicle) { super .onCreate(icicle); CarregaTelaPrincipal(); }

    } Observem que nesta classe eu criei dois mtodos : CarregaTelaPrincipal e

    CarregaTela2. Toda aplicao que utilize mais de um layout, o carreg amento dos layouts e de seus respectivos widgets devem estar separados em funes desenvolvidas para esse propsito. Logo, o mtodo CarregaTelaPrincipal carrega o layout principal e seus respectivos componentes, o mesmo vlido para o mtodo CarregaTela2, que carrega o layout da tela 2 e seus respectivos componentes. Feito isso, execute a aplicao. Veja o result ado abaixo:

  • 41

    (Tela Principal)

    (Tela 2)

  • 42

    Desenvolvendo uma aplicao de cadastro

    Agora para encerrar, vamos desenvolver uma aplicao de ca dastro. Essa aplicao consiste em um cadastro de pessoas onde posso cada strar dados como: Nome, Profisso e Idade. Essa aplicao vai fazer uso de trs layouts:

    O layout principal: Esse layout dar acesso ao layout de cadastro e o

    layout de visualizao de dados . O layout de cadastro: Nesse layout onde ser efetuado o cadastro dos

    dados da pessoa. O layout de visualizao de dados: Nesse layout onde sero visualizados

    os dados cadastrados. Se nenhum dado foi cadastrado, ser exibida uma mensagem informando essa situao.

    Nessa aplicao, para armazenar os dados, eu fao um de uma estrutura

    de dados FIFO ou Fila. Nessa estrutura, os dados so armaze nados em seqncia, e acessados em seqncia , ou seja, o primeiro dado a entrar ser o primeiro a ser exibido.

    Bom, vamos construir a nossa aplicao. Crie um novo projeto com os

    dados abaixo: Project Name: ProjetoAppCadastro Package Name : com.android.appcadastro Activity Name: AppCadastro Application Name: Aplicao de Cadastros Dentro da pasta res/drawable , coloque a figura que acompanha este

    material, ela se chama profile.png . Agora no arquivo main.xml coloque o cdigo abaixo:

  • 43

    android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Bem vindo a aplicao de Cadastro de Pessoas. Este um pequeno programa de demonstrao de cadastro. Se lecione uma das opes abaixo:" />

    Dentro da pasta res/layout , crie um arquivo chamado cadastro.xml com o

    seguinte cdigo:

  • 44

    Agora dentro da pasta res/layout , crie um arquivo chamado

    listacadastros.xml com o seguinte cdigo:

  • 45

    />

  • 46

    android:layout_height="wrap_content">

    Agora no arquivo AppCadastro.java, coloque o seguinte c digo:

    package com.android.appcadastro; import android.app.Activity; import android.os.Bundle; import android.widget.*; import android.view.*; public class AppCadastro extends Activity { /** Called when the activity is first created. */ Registro pri , reg , ult , aux ; EditText ednome, edprof , edidade ; int numreg , pos ; void CarregaTelaPrincipal () { setContentView(R.layout. main ); Button btcadpess = (Button) findViewById(R .id. btcadpess ); Button btlistapess = (Button) findViewById (R.id. btlistpess ); btcadpess.setOnClickListener( new View.OnClickListener(){ public void onClick(View arg0){ CarregaTelaCadastro();

  • 47

    }}); btlistapess.setOnClickListener( new View.OnClickListener(){ public void onClick(View arg0){ CarregaListaPessoas(); }}); } void CarregaTelaCadastro() { setContentView(R.layout. cadastro ); Button btcadastrar = (Button) findViewById(R.cadastro. btcadastro ); Button btvoltar = (Button) findViewById(R.cada stro. btvoltar ); btcadastrar.setOnClickListener( new View.OnClickListener(){ public void onClick(View arg0){ try { reg = new Registro(); ednome = (EditText)findViewById(R.campo. nome); edprof = (EditText)findViewById(R.campo. profissao ); edidade = (EditText)findViewById(R.campo. idade ); reg . nome = ednome.getText().toString(); reg . profissao = edprof .getText().toString(); reg . idade = edidade .getText().toString(); if ( pri ==null ) pri =reg ; reg . Ant = ult ; if ( ult ==null ) ult =reg ; else { ult . Prox = reg ; ult =reg ; } numreg ++; showAlert( "Aviso" , 0, "Cadastro efetuado com sucesso" , "OK" , false ); } catch (Exception e) { showAlert( "Erro" , 0, "Erro ao cadastrar" , "OK" , false ); }} }); btvoltar.setOnClickListener( new View.OnClickListener(){ public void onClick(View arg0){

  • 48

    CarregaTelaPrincipal(); } }); } void CarregaListaPessoas() { if ( numreg ==0) { showAlert( "Aviso" , 0, "Nenhum registro cadastrado" , "OK" , false ); CarregaTelaPrincipal(); return ; } setContentView(R.layout. listacadastrados ); pos =1; aux =pri ; TextView fnome = (TextView)findViewById(R.fiel d. nome); TextView fidade = (TextView)findViewById(R.fie ld. idade ); TextView fprof = (TextView)findViewById(R.fiel d. profissao ); Button btanterior = (Button) findViewById(R.li sta. btanterior ); Button btproximo = (Button) findViewById(R.lis ta. btproximo ); Button btvoltar = (Button) findViewById(R.list a. btvoltar ); fnome.setText( aux . nome); fidade.setText( aux . idade ); fprof.setText( aux . profissao ); btvoltar.setOnClickListener( new View.OnClickListener(){ public void onClick(View arg0){ CarregaTelaPrincipal(); } }); btanterior.setOnClickListener( new View.OnClickListener(){ public void onClick(View arg0){ if ( pos ==1) return ; pos --; aux =aux . Ant ; TextView fnome = (TextView)findViewByI d(R.field. nome); TextView fidade = (TextView)findViewById(R.field. idade ); TextView fprof = (TextView)findViewById(R.field. profissao ); fnome.setText( aux . nome); fidade.setText( aux . idade ); fprof.setText( aux . profissao ); } }); btproximo.setOnClickListener( new View.OnClickListener(){ public void onClick(View arg0){ if ( pos ==numreg ) return ; pos ++;

  • 49

    aux =aux . Prox ; TextView fnome = (TextView)findViewBy Id(R.field. nome); TextView fidade = (TextView)findViewById(R.field. idade ); TextView fprof = (TextView)findViewById(R.field. profissao ); fnome.setText( aux . nome); fidade.setText( aux . idade ); fprof.setText( aux . profissao ); } }); } public void onCreate(Bundle icicle) { super .onCreate(icicle); numreg =0; pri =ult =null ; CarregaTelaPrincipal(); }}

    Agora no mesmo local onde se encontra o arquivo AppCadastro.java (no

    pacote com.android.appcadastro), voc vai criar uma classe Chamada Registro. Depois de criar a classe, coloque o cdigo que exibido abaixo:

    package com.android.appcadastro; public class Registro { String nome; String profissao ; String idade ; Registro Prox ; Registro Ant ; }

    Agora vamos analisar aos poucos os cdigos dessa aplicao. O bserve

    que nessa aplicao ou possuo trs mtodos: um mtodo chamado CarregaTelaPrincipal , responsvel por carregar o layout da tela principal. O mtodo CarregaTelaCadastro responsvel por carregar a tela de cadastro.

    Vamos analisar alguns cdigos do mtodo CarregaTelaCadastro. Se voc

    observar nessa aplicao, que eu declarei quatro variveis chamadas pri,ult e reg e aux do tipo Registro . A varivel pri, serve para apontar para o endereo do primeiro registro. A varivel ult aponta para o endereo do ltimo registro. A varivel reg armazena os dados do registro corrente e a varivel aux funciona como uma varivel auxiliar.

  • 50

    com a utilizao essas variveis que fao o cadastro dos da dos das pessoas. Vamos para o evento click do boto btcadastrar situado dentro do mtodo CarregaTelaCadastro e analisar algumas linhas de cdigo. A linha:

    reg = new Registro(); Cria uma nova instncia da classe da classe Registro e coloca em .reg .

    As linhas: reg . nome = ednome.getText().toString();

    reg . profissao = edprof .getText().toString(); reg . idade = edidade .getText().toString();

    Gravam os dados dos campos no objeto reg . J as linhas abaixo:

    if ( pri ==null ) pri =reg ; reg . Ant = ult ; if ( ult ==null ) ult =reg ; else { ult . Prox = reg ; ult =reg ; }

    Fazem todo o processo de armazenamento dos dados. Agora vamos para o mtodo CarregaListaPessoas. Quando esse mtodo

    chamado, feita uma verificao se h dados cadastrados. Se no houver dados cadastrados, ser exibida uma mensagem indicando essa situao e voc ser retornado a tela principal. Vou comentar algumas linhas. A linha:

    aux =pri ; Retorna para a varivel aux o endereo do primeiro registro, que est

    armazenado em pri . J as linhas:

    fnome.setText( aux . nome); fidade.setText( aux . idade ); fprof.setText( aux . profissao );

    Joga as informaes obtidas (nome, idade e profisso) para os campos (TextViews), para que eles possam ser exibidas.

    Vamos agora para o evento click do boto btanterior. Esse boto mostra os

    registros anteriores. Antes de voltar um registro, verifico se eu me encontro no primeiro registro pela condio:

    if ( pos ==1) Se a condio for verdadeira, saio do evento, seno, con tinuo executando

    as instrues. A linha: aux =aux . Ant ; Retorna para aux o endereo do registro anterior. Depois disso so

    executados instrues para que os dados possam ser exibidos.

  • 51

    J no evento click do boto btproximo, antes de passar para o prximo registro, verifico se j est no ltimo registro pela instruo:

    if ( pos ==numreg ) Se a condio for verdadeira, saio do evento, seno, con tinuo executando

    as instrues. A linha: aux =aux . Prox ; Retorna para aux o endereo do prximo registro. Depois disso so

    executados instrues para que os dados possam ser exibidos. Agora vamos no arquivo de layout listacadastrados.xml, quero comentar

    algumas propriedades interessantes. Se voc observar, algumas TextViews possuem um atributo chamado android.textColor e android:textSize, esses atributos definem a cor e o tamanho do texto respectivamente.

    Bom, vamos executar a nossa aplicao ? O resultado voc confere nas

    figuras abaixo:

    (Tela Principal)

  • 52

    (Tela de cadastro)

    (Tela de visualizao dos dados cadastrados)

  • 53

    Lista de atributos Agora irei mostrar alguns atributos comumente usados em uma aplicao

    Android de alguns componentes, principalmente os componentes que ns usamos nas aplicaes acima.

    Aqui vou descrever os atributos usados nos componentes (no formato

    XML) e quais so os mtodos referentes aos atributos descritos, ou seja, vamos supor que queira modificar o valor de um determinado atributo em tempo de execuo, ento cada atributo possui um mtodo, para que seu valor possa ser modificado em tempo de execuo.

    android:text: Essa propriedade serve para mostrar o texto que passado

    como parmetro. Mtodo relacionado: setText(CharSequence) Exemplos: XML android:Text=Hello World Java texto.setText(Hello World) Widgets que possuem essa propriedade: TextView, EditText,

    RadioButton, CheckBox, Button android:textColor: Essa propriedade serve para definir uma cor para o

    texo exibido. Mtodo relacionado: setTextColor(int color) Exemplos: XML android:textColor=#FFFF00 Java texto.setTextColor(Color.YELLOW); OBS:A classe Color se encontra no pacote android.graphics . Widgets que possuem essa propriedade: TextView, EditText,

    RadioButton, CheckBox, Button

  • 54

    android:background: Essa propriedade serve para definir uma cor de

    fundo. Mtodos relacionados: setBackgroundColor(int color); Exemplos: XML android:background=#FF0000 Java texto. setBackgroundColor (Color.RED); Widgets que possuem essa propriedade: TextView, EditText,

    RadioButton, CheckBox, Button android:phoneNumber Essa propriedade serve para definir uma entrada

    de valores no formato de nmero telefnico. O valor padro desse atributo falso .

    Mtodos relacionados: setKeyListener(KeyListener Arg); Exemplos: XML android: phoneNumber =true Java Em Java voc deveria definir um conjunto de instrues para capturar as

    entradas de dados de modo que as entradas atendam a essa finalidade. Widgets que possuem essa propriedade: TextView, EditText android:numeric Com essa propriedade habilitada, o widget com essa

    propriedade s ir aceitar nmeros (inteiros e decimais). O valor padro desse atributo falso .

    Mtodos relacionados: setKeyListener(KeyListener Arg); Exemplos: XML

  • 55

    android:numeric =true Java Em Java voc deveria definir um conjunto de instrues para capturar as

    entradas de dados de modo que as entradas atendam a essa finalidade. Widgets que possuem essa propriedade: TextView, EdiText android:textStyle: Essa propriedade serve para definir um estilo a fonte

    (negrito e/ou itlico). Mtodos relacionados: setTypeface(Typeface); Exemplos: XML android:textStyle =bold android:textStyle =italic android:textStyle =bold_italic Java texto. setTypeface (Typeface.DEFAULT_BOLD); texto. setTypeface (Typeface.DEFAULT_ITALIC); texto. setTypeface (Typeface.DEFAULT_BOLD_ITALIC); OBS:A classe Typeface se encontra no pacote android.graphics . Widgets que possuem essa propriedade: TextView,

    EdiText,RadioButton,CheckBox,Button. android:textSize: Essa propriedade serve para definir o tamanho da fonte.

    O tamanho da fonte pode ser especificado em vrias notaes : px (pixels),sp(scaled-pixels) , mm(milmetros), in (inches) e etc.

    Mtodos relacionados: setTextSize(float tamanho) ou setTextSize(int

    unidade, int tamanho); Exemplos: XML android:textSize =10px android:textStyle =20sp

  • 56

    Java texto. setTextSize (TypedValue.COMPLEX_UNIT_PX,10); //Unidade em

    pixels texto. setTypeface (TypedValue.COMPLEX_UNIT_SP,10); //Unidade

    em scaled-pixels texto. setTypeface (20); //Unidade em scaled-pixels OBS: A classe Typeface se encontra no pacote android.util . Widgets que possuem essa propriedade: TextView,

    EdiText,RadioButton,CheckBox,Button. android:typeface: Essa propriedade serve para definir uma fonte ao texto

    (Arial , Times NewRoman, Courier New e etc). Mtodos relacionados: setTypeface(Typeface); Exemplos: XML android:typeface =Arial android:typeface =Times New Roman Java texto. setTypeface (Typeface.create(Arial,0)); texto. setTypeface (Typeface.create(times New Roman ,0)); Widgets que possuem essa propriedade: TextView,

    EdiText,RadioButton,CheckBox,Button. android:capitalize: Essa propriedade serve para definir o tipo

    capitalizao das palavras. Por padro, o valor e none (nenhum). Os valores usados nessa propriedade so:

    none Nenhuma capitalizao ocorrer

    sentences Capitaliza a primeira letra da primeira palavra de qualquer sentena

    words Capitaliza a primeira letra de qualquer sentena

    characters Capitaliza todos os caracteres

  • 57

    Mtodos relacionados: setKeyListener(KeyListener Arg); Exemplos: XML android:capitalize =sentences Java Em Java voc deveria definir um conjunto de instrues para

    capturar as entradas de dados de modo que as entradas atendam a essa finalidade.

    Widgets que possuem essa propriedade: TextView,

    EdiText,RadioButton,CheckBox,Button. android:password Com essa propriedade voc habilita a digitao de

    senhas. Mtodos relacionados:

    setKeyTransformationMethod(TransformationMethod arg); Exemplos: XML android:password =true Java Em Java voc deveria definir um conjunto de instrues para capturar as

    entradas de dados de modo que as entradas atendam a essa finalidade. Widgets que possuem essa propriedade: TextView, EdiText

  • 58

    Concluso Nesta apostila aprendemos a programar o bsico do Android. Vimos um

    pouco sobre a plataforma Android, como ela surgiu e tudo mais. Aprendemos a instalar o eclipse e os plugins necessrios para o funcionamento do Android, incluindo o SDK. Aprendemos a construir uma aplicao An droid bsica e depois conhecemos os componentes (widgets) que constituem uma aplicao Android para a construo de aplicaes mais interessantes. Vimos tambm como trocar de layouts em uma aplicao Android tendo como exemplo prtico, uma aplicao de cadastro e por ltimo, conhecemos algumas propriedades comumente usadas em alguns widgets que constituem uma aplicao Android.

    Espero que esse material lhe tenha sido til. Abraos