Top Banner
domingo, 21 de outubro de 12
168

Aula android 02.pdf

May 10, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 2: Aula android 02.pdf

Carlos Cavalcanti

@CarlosCaval [email protected]

domingo, 21 de outubro de 12

Page 3: Aula android 02.pdf

Fragmentação

domingo, 21 de outubro de 12

Page 4: Aula android 02.pdf

Fragmentação

domingo, 21 de outubro de 12

Page 5: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 6: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 7: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 8: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 9: Aula android 02.pdf

Extra!

Fragments

http://www.youtube.com/watch?v=A3z5TO8COZM

Palestra sobre fragments

domingo, 21 de outubro de 12

Page 10: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 11: Aula android 02.pdf

Troca de informações entre telas

domingo, 21 de outubro de 12

Page 12: Aula android 02.pdf

String mensagemQualquer = "Olá!";Intent intent = new Intent(this, SegundaActivity.class);intent.putExtra("mensagem", mensagemQualquer);startActivity(intent);

Intent intent = getIntent();String mensagem = intent.getStringExtra("mensagem");

MainActivity

SegundaActivity

domingo, 21 de outubro de 12

Page 13: Aula android 02.pdf

putExtra()domingo, 21 de outubro de 12

Page 14: Aula android 02.pdf

get?Extra()

domingo, 21 de outubro de 12

Page 15: Aula android 02.pdf

get?Extra()

intent.getIntExtra(name, defaultValue)

domingo, 21 de outubro de 12

Page 16: Aula android 02.pdf

get?Extra()

intent.getIntExtra(name, defaultValue)

intent.getStringExtra(name)

domingo, 21 de outubro de 12

Page 17: Aula android 02.pdf

get?Extra()

intent.getIntExtra(name, defaultValue)

intent.getStringExtra(name)

intent.getLongExtra(name, defaultValue)

domingo, 21 de outubro de 12

Page 18: Aula android 02.pdf

get?Extra()

intent.getIntExtra(name, defaultValue)

intent.getStringExtra(name)

intent.getLongExtra(name, defaultValue)

intent.getBooleanExtra(name, defaultValue)

domingo, 21 de outubro de 12

Page 19: Aula android 02.pdf

get?Extra()

intent.getIntExtra(name, defaultValue)

intent.getStringExtra(name)

intent.getLongExtra(name, defaultValue)

intent.getBooleanExtra(name, defaultValue)

intent.getFloatExtra(name, defaultValue)

domingo, 21 de outubro de 12

Page 20: Aula android 02.pdf

get?Extra()

intent.getIntExtra(name, defaultValue)

intent.getStringExtra(name)

intent.getLongExtra(name, defaultValue)

intent.getBooleanExtra(name, defaultValue)

intent.getFloatExtra(name, defaultValue)

intent.getFloatArrayExtra(name)

domingo, 21 de outubro de 12

Page 21: Aula android 02.pdf

get?Extra()

intent.getIntExtra(name, defaultValue)

intent.getStringExtra(name)

intent.getLongExtra(name, defaultValue)

intent.getBooleanExtra(name, defaultValue)

intent.getFloatExtra(name, defaultValue)

intent.getFloatArrayExtra(name)

intent.getIntArrayExtra(name)

domingo, 21 de outubro de 12

Page 22: Aula android 02.pdf

• Criar duas activitys

• A activity principal deverá ter um editText e um Button. Ao pressionar o button deverá abrir uma outra activity e mandar via putExtra() a mensagem do editText

• Deverá exibir a mensagem digitada no editText em um textView

String mensagemQualquer = "Olá!";Intent intent = new Intent(this, SegundaActivity.class);intent.putExtra("mensagem", mensagemQualquer);startActivity(intent);

Intent intent = getIntent();String mensagem = intent.getStringExtra("mensagem");

MainActivity

SegundaActivity

domingo, 21 de outubro de 12

Page 23: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 24: Aula android 02.pdf

logcatdomingo, 21 de outubro de 12

Page 25: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 26: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 27: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 28: Aula android 02.pdf

Exemplo Log//Verbose

Log.v("Tag", "Messagem"); //Debug Log.d("Tag", "Messagem"); //Info Log.i("Tag", "Messagem"); //Warn Log.w("Tag", "Messagem"); //Error Log.e("Tag", "Messagem");

import android.util.Log;

domingo, 21 de outubro de 12

Page 29: Aula android 02.pdf

Filtragem

domingo, 21 de outubro de 12

Page 30: Aula android 02.pdf

Filtragem

domingo, 21 de outubro de 12

Page 31: Aula android 02.pdf

Nivel Sigla Cor

Debug D azul

Verbose V preto

Info I verde

Warn W laranja

Error E vermelho

Tipos de logs e suas cores

domingo, 21 de outubro de 12

Page 32: Aula android 02.pdf

Exercício

• Logar os eventos da activity

domingo, 21 de outubro de 12

Page 33: Aula android 02.pdf

Ciclo de vida

da activity

domingo, 21 de outubro de 12

Page 34: Aula android 02.pdf

public class CicloDeVidaActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i("Teste", "onCreate"); } @Override protected void onStart() { super.onStart(); Log.i("Teste", "onStart"); } @Override protected void onRestart() { super.onRestart(); Log.i("Teste", "onRestart"); }

@Override protected void onResume() { super.onResume(); Log.i("Teste", "onResume"); } @Override protected void onPause() { super.onPause(); Log.i("Teste", "onPause"); } @Override protected void onStop() { super.onStop(); Log.i("Teste", "onStop"); } @Override protected void onDestroy() { super.onDestroy(); Log.i("Teste", "onDestroy"); }}

domingo, 21 de outubro de 12

Page 35: Aula android 02.pdf

Componentes de tela

domingo, 21 de outubro de 12

Page 36: Aula android 02.pdf

TextView’s <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" />

<TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Small Text" android:textAppearance="?android:attr/textAppearanceSmall" />

domingo, 21 de outubro de 12

Page 37: Aula android 02.pdf

CheckBox e RadioButton<CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CheckBox" />

<RadioButton android:id="@+id/radioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton" />

domingo, 21 de outubro de 12

Page 38: Aula android 02.pdf

CheckBox e RadioButton<CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CheckBox" />

<RadioButton android:id="@+id/radioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton" />

domingo, 21 de outubro de 12

Page 39: Aula android 02.pdf

CheckBox e RadioButton<CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CheckBox" />

<RadioButton android:id="@+id/radioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton" />

domingo, 21 de outubro de 12

Page 40: Aula android 02.pdf

ProgressBar’s

<ProgressBar android:id="@+id/progressBar3" style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar2" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" />

domingo, 21 de outubro de 12

Page 41: Aula android 02.pdf

ProgressBar’s

<ProgressBar android:id="@+id/progressBar3" style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar2" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" />

domingo, 21 de outubro de 12

Page 42: Aula android 02.pdf

ProgressBar’s

<ProgressBar android:id="@+id/progressBar3" style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar2" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" />

domingo, 21 de outubro de 12

Page 43: Aula android 02.pdf

ProgressBar’s

<ProgressBar android:id="@+id/progressBar3" style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar2" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" />

domingo, 21 de outubro de 12

Page 44: Aula android 02.pdf

ProgressBar e SeekBar <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:progress="50" />

<SeekBar android:id="@+id/seekBar1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:progress="30" />

domingo, 21 de outubro de 12

Page 45: Aula android 02.pdf

ProgressBar e SeekBar <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:progress="50" />

<SeekBar android:id="@+id/seekBar1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:progress="30" />

domingo, 21 de outubro de 12

Page 46: Aula android 02.pdf

ProgressBar e SeekBar <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:progress="50" />

<SeekBar android:id="@+id/seekBar1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:max="100" android:progress="30" />

domingo, 21 de outubro de 12

Page 47: Aula android 02.pdf

QuickContactBadge e RatingBar

<QuickContactBadge android:id="@+id/quickContactBadge1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" />

<RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

domingo, 21 de outubro de 12

Page 48: Aula android 02.pdf

QuickContactBadge e RatingBar

<QuickContactBadge android:id="@+id/quickContactBadge1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" />

<RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

domingo, 21 de outubro de 12

Page 49: Aula android 02.pdf

QuickContactBadge e RatingBar

<QuickContactBadge android:id="@+id/quickContactBadge1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_launcher" />

<RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

domingo, 21 de outubro de 12

Page 50: Aula android 02.pdf

QuickContactBadge

domingo, 21 de outubro de 12

Page 51: Aula android 02.pdf

RadioButton <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" >

<RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="RadioButton" />

<RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton" />

<RadioButton android:id="@+id/radio2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton" /> </RadioGroup>

domingo, 21 de outubro de 12

Page 52: Aula android 02.pdf

RadioButton <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" >

<RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="RadioButton" />

<RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton" />

<RadioButton android:id="@+id/radio2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton" /> </RadioGroup>

domingo, 21 de outubro de 12

Page 53: Aula android 02.pdf

EditText

<EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="olá" />

domingo, 21 de outubro de 12

Page 54: Aula android 02.pdf

EditText

<EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="olá" />

domingo, 21 de outubro de 12

Page 55: Aula android 02.pdf

ImageView e ImageButton

<ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" />

<ImageButton android:id="@+id/imageButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" />

domingo, 21 de outubro de 12

Page 56: Aula android 02.pdf

ImageView e ImageButton

<ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" />

<ImageButton android:id="@+id/imageButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" />

domingo, 21 de outubro de 12

Page 57: Aula android 02.pdf

ImageView e ImageButton

<ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" />

<ImageButton android:id="@+id/imageButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" />

domingo, 21 de outubro de 12

Page 58: Aula android 02.pdf

Time & Date

<TimePicker android:id="@+id/timePicker1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<DatePicker android:id="@+id/datePicker1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<AnalogClock android:id="@+id/analogClock1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<Chronometer android:id="@+id/chronometer1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Chronometer" />

domingo, 21 de outubro de 12

Page 59: Aula android 02.pdf

Time & Date

<TimePicker android:id="@+id/timePicker1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<DatePicker android:id="@+id/datePicker1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<AnalogClock android:id="@+id/analogClock1" android:layout_width="wrap_content" android:layout_height="wrap_content" />

<Chronometer android:id="@+id/chronometer1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Chronometer" />

domingo, 21 de outubro de 12

Page 60: Aula android 02.pdf

Exercício• Criar um novo projeto

• Inserir na tela 3 RadioButton’s

• Os RadioButton’s deverão ter o texto:

• Tela 1

• Tela 2

• Tela 3

• Inserir na tela 1 Button

• Criar mais 3 telas (activitys)

• Cada tela deverá exibir um texto diferente de sua preferência

• Cada RadioButton deverá ter uma tela correspondente que ao clicar no botão deverá abri-la

domingo, 21 de outubro de 12

Page 61: Aula android 02.pdf

Exercício• Criar um novo projeto

• Inserir na tela 3 RadioButton’s

• Os RadioButton’s deverão ter o texto:

• Tela 1

• Tela 2

• Tela 3

• Inserir na tela 1 Button

• Criar mais 3 telas (activitys)

• Cada tela deverá exibir um texto diferente de sua preferência

• Cada RadioButton deverá ter uma tela correspondente que ao clicar no botão deverá abri-la

Dica

domingo, 21 de outubro de 12

Page 62: Aula android 02.pdf

Exercício• Criar um novo projeto

• Inserir na tela 3 RadioButton’s

• Os RadioButton’s deverão ter o texto:

• Tela 1

• Tela 2

• Tela 3

• Inserir na tela 1 Button

• Criar mais 3 telas (activitys)

• Cada tela deverá exibir um texto diferente de sua preferência

• Cada RadioButton deverá ter uma tela correspondente que ao clicar no botão deverá abri-la

DicaRadioButton radio0 = (RadioButton) findViewById(R.id.radio0);if (radio0.isChecked()) ...

domingo, 21 de outubro de 12

Page 63: Aula android 02.pdf

Layouts

domingo, 21 de outubro de 12

Page 64: Aula android 02.pdf

Altura e largura

Atributo Descriçãoandroid:layout_height Especifica a altura de um

componente

android:layout_width Especifica a largura de um componente

domingo, 21 de outubro de 12

Page 65: Aula android 02.pdf

Valores para altura e largura

• fill_parent - Significa que o componente precisa ocupar todo o tamanho definido por seu pai (layout), ou seja, este deverá ser sempre usado quando o componente necessita ocupar o espaço de layout.

• wrap_content -Para o componente ocupar apenas o tamanho necessário na tela

• Valor - Podemos também passar um valor númerico informando o tamanho do componente

domingo, 21 de outubro de 12

Page 66: Aula android 02.pdf

Valores para altura e larguraAtributo Descrição

fill_parent Significa que o componente precisa ocupar todo o tamanho definido por seu pai (layout), ou seja, este deverá ser sempre usado quando o componente necessita ocupar o espaço de layout.

wrap_content Para o componente ocupar apenas o tamanho necessário na tela

Valor Podemos também passar um valor númerico informando o tamanho do componente

domingo, 21 de outubro de 12

Page 67: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Botao de teste" android:layout_gravity="left" />

</LinearLayout>

domingo, 21 de outubro de 12

Page 68: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="Botao de teste" android:layout_gravity="left" />

</LinearLayout>

domingo, 21 de outubro de 12

Page 69: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Botao de teste" android:layout_gravity="left" />

</LinearLayout>

domingo, 21 de outubro de 12

Page 70: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="300px" android:layout_height="wrap_content" android:text="Botao de teste" android:layout_gravity="left" />

</LinearLayout>

domingo, 21 de outubro de 12

Page 71: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="300dp" android:layout_height="wrap_content" android:text="Botao de teste" android:layout_gravity="left" />

</LinearLayout>

domingo, 21 de outubro de 12

Page 72: Aula android 02.pdf

Density-independent pixel (dp)

A conversão de unidades de DP para pixels da tela é simples: px = dp * (dpi / 160). Por exemplo, em uma tela de 240 dpi, 1 dp igual a 1,5 pixels físicas.

domingo, 21 de outubro de 12

Page 73: Aula android 02.pdf

AbsoluteLayout

• Este tipo de layout permite posicionar os componentes da maneira desejada através das coordenadas do x e y.

domingo, 21 de outubro de 12

Page 74: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 75: Aula android 02.pdf

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="39dp" android:layout_y="37dp" android:text="Button" />

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="180dp" android:layout_y="203dp" android:text="Button" />

<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="205dp" android:layout_y="69dp" android:text="TextView" />

</AbsoluteLayout>

domingo, 21 de outubro de 12

Page 76: Aula android 02.pdf

FrameLayout

• Este layout é utilizado por um componente que precisa preencher a tela inteira. É possível inserir mais de um componente no FrameLayout, porém sempre serão os últimos que ficarão no topo do elemento, obedecendo o conceito de pilha. Isso é útil para construir aplicações com uma imagem em segundo plano.

domingo, 21 de outubro de 12

Page 77: Aula android 02.pdf

LinearLayout

• Este layout é usado para organizar os componentes na vertical ou horizontal através do atributo android:orientation.

domingo, 21 de outubro de 12

Page 78: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" />

<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" />

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>

domingo, 21 de outubro de 12

Page 79: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" />

<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" />

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>

domingo, 21 de outubro de 12

Page 80: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:layout_gravity="left" />

<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:layout_gravity="center"/>

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:layout_gravity="right"/> </LinearLayout>

domingo, 21 de outubro de 12

Page 81: Aula android 02.pdf

Peso - weight

domingo, 21 de outubro de 12

Page 82: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:layout_gravity="left" />

<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:layout_gravity="center"/> <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" />

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>

domingo, 21 de outubro de 12

Page 83: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:layout_gravity="left" />

<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:layout_gravity="center"/> <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" />

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>

domingo, 21 de outubro de 12

Page 84: Aula android 02.pdf

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:layout_gravity="left" />

<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:layout_weight="1" android:layout_gravity="center"/> <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"/> <EditText android:id="@+id/editText2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="2"/>

<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>

domingo, 21 de outubro de 12

Page 85: Aula android 02.pdf

Quanto maior o weight maior será sua importância (peso)

domingo, 21 de outubro de 12

Page 86: Aula android 02.pdf

TableLayout

• E s t e é u s a d o p a r a o r g a n i z a r o s componentes em uma tabela, com linhas e colunas

domingo, 21 de outubro de 12

Page 87: Aula android 02.pdf

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:shrinkColumns="2"> <TableRow> <TextView android:text="coluna 1"/> <TextView android:text="coluna 2"/> </TableRow> <TableRow> <TextView android:text="coluna 1"/> <TextView android:text="coluna 2"/> <TextView android:text="Texto grande que vai siar da tela, deverá quebrar a coluna pois o shrinkColumn=2"/> </TableRow> <TableRow> <TextView android:text="coluna 1"/> <TextView android:text="coluna 2"/> <TextView android:text="Coluna 3"/> </TableRow> </TableLayout>

domingo, 21 de outubro de 12

Page 88: Aula android 02.pdf

RelativeLayout

• Este Permite posicionar um componente relativo a outro, por exemplo, abaixo, acima ou ao lado de um componente já existente

domingo, 21 de outubro de 12

Page 89: Aula android 02.pdf

Atributo Descriçãoandroid:layout:below Posiciona abaixo do componente indicado

android:layout:above Posiciona acima do componente indicado

android:layout:toRightOf Posiciona a direita do componente indicado

android:layout:toLeftOf Posiciona a esquerda do componente indicado

android:layout:alignParentTop Alinha no topo do componente indicado

android:layout:alignParentBottom Alinha abaixo do componente indicado

android:layout:layout_marginTop Utilizado para definir um espaço na margem superior do componente

android:layout:layout_marginRight Utilizado para definir um espaço a direita do componente

android:layout:layout_marginLeft Utilizado para definir um espaço a esquerda do componente

domingo, 21 de outubro de 12

Page 90: Aula android 02.pdf

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/txtLogin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Usuario"/> <EditText android:id="@+id/edtLogin" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_toRightOf="@id/txtLogin"/> </RelativeLayout>

domingo, 21 de outubro de 12

Page 91: Aula android 02.pdf

BroadcastReceiver

domingo, 21 de outubro de 12

Page 92: Aula android 02.pdf

O que é BroadcastReceiver ?

domingo, 21 de outubro de 12

Page 93: Aula android 02.pdf

Ela é usada para responder a determinados eventos.

domingo, 21 de outubro de 12

Page 94: Aula android 02.pdf

Por exemplo...

domingo, 21 de outubro de 12

Page 95: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 96: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 97: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 98: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 99: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 100: Aula android 02.pdf

Como implementar?

domingo, 21 de outubro de 12

Page 101: Aula android 02.pdf

Primeiramente é necessário criar uma classe que herde do BroadcastReceiver

domingo, 21 de outubro de 12

Page 102: Aula android 02.pdf

public class ExemploReceiver extends BroadcastReceiver {

@Override public void onReceive(Context context, Intent intent) { String mensagem ="Oi mãe, to sendo executado pelo receiver! :D"; Toast.makeText(context, mensagem, Toast.LENGTH_LONG).show(); }

}

domingo, 21 de outubro de 12

Page 103: Aula android 02.pdf

public class ExemploReceiver extends BroadcastReceiver {

@Override public void onReceive(Context context, Intent intent) { String mensagem ="Oi mãe, to sendo executado pelo receiver! :D"; Toast.makeText(context, mensagem, Toast.LENGTH_LONG).show(); }

}

domingo, 21 de outubro de 12

Page 104: Aula android 02.pdf

public class ExemploReceiver extends BroadcastReceiver {

@Override public void onReceive(Context context, Intent intent) { String mensagem ="Oi mãe, to sendo executado pelo receiver! :D"; Toast.makeText(context, mensagem, Toast.LENGTH_LONG).show(); }

}

domingo, 21 de outubro de 12

Page 105: Aula android 02.pdf

Para configurar o BroadcastReceiver é necessário utilizar a tag <receiver> no arquivo manifest.

Além disso...

domingo, 21 de outubro de 12

Page 106: Aula android 02.pdf

<receiver android:name=".ExemploReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter></receiver>

domingo, 21 de outubro de 12

Page 107: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 108: Aula android 02.pdf

Notification

domingo, 21 de outubro de 12

Page 109: Aula android 02.pdf

O que é Notification ?

domingo, 21 de outubro de 12

Page 110: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 111: Aula android 02.pdf

O que é necessário?

domingo, 21 de outubro de 12

Page 112: Aula android 02.pdf

Criar um

domingo, 21 de outubro de 12

Page 113: Aula android 02.pdf

Criar um

Notification

domingo, 21 de outubro de 12

Page 114: Aula android 02.pdf

Criar um

Notification

NotificationManager

domingo, 21 de outubro de 12

Page 115: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 116: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 117: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 118: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 119: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 120: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 121: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 122: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 123: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 124: Aula android 02.pdf

private void criarNotification() { NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher, "Uma nova mensagem!", System.currentTimeMillis()); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); notificationManager.notify(R.string.app_name, notification); }

domingo, 21 de outubro de 12

Page 125: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 126: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 127: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 128: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 129: Aula android 02.pdf

Notification notification = new Notification(icone, texto, quando);

Parâmetro Descrição

init O id do recurso do icone para exibir na barra de status da notificação

texto Titulo do texto para exibir na barra de status na primeira vez em que a notificação aparece

quando A data e hora para exibir a notificação.

domingo, 21 de outubro de 12

Page 130: Aula android 02.pdf

Parâmetro Descrição

Contexto O contexto, referência da activity que está criando a notificação.

Código Código para identificar a requisição.

Intent Contém as informações da activity que deverá ser exibida caso o usuário pressione a notificação

flags Flags opcionais para controlar a abertura da intent fornecida

PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0);

domingo, 21 de outubro de 12

Page 131: Aula android 02.pdf

Parâmetro Descrição

Contexto Referência da activity que está criando a notification

Titulo Titulo da notificação

Conteúdo Conteúdo com os detalhes da notification

intent Referência da PendingIntent

notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent);

domingo, 21 de outubro de 12

Page 132: Aula android 02.pdf

Exercício• Criar 2 telas

• Uma deverá ter um botão que irá criar uma notificação

• A outra tela deverá ser chamada ao clicar na notificação. Esta deverá ter um textView.

domingo, 21 de outubro de 12

Page 133: Aula android 02.pdf

Ao pressionar a notificação ela não está sumindo!!!!

domingo, 21 de outubro de 12

Page 134: Aula android 02.pdf

É necessário mandar fecha-la em algum momento.

domingo, 21 de outubro de 12

Page 135: Aula android 02.pdf

Através do método cancel() do NotificationManager

domingo, 21 de outubro de 12

Page 136: Aula android 02.pdf

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tela_para_notificacao); NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); notificationManager.cancel(R.string.app_name); }

domingo, 21 de outubro de 12

Page 137: Aula android 02.pdf

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tela_para_notificacao); NotificationManager notificationManager = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE); notificationManager.cancel(R.string.app_name); }

domingo, 21 de outubro de 12

Page 138: Aula android 02.pdf

É possível...

domingo, 21 de outubro de 12

Page 139: Aula android 02.pdf

É possível...

domingo, 21 de outubro de 12

Page 140: Aula android 02.pdf

É possível...

fazer o celular vibrar!domingo, 21 de outubro de 12

Page 141: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

domingo, 21 de outubro de 12

Page 142: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

domingo, 21 de outubro de 12

Page 143: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa

domingo, 21 de outubro de 12

Page 144: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa

domingo, 21 de outubro de 12

Page 145: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração

domingo, 21 de outubro de 12

Page 146: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração

domingo, 21 de outubro de 12

Page 147: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração Pausa

domingo, 21 de outubro de 12

Page 148: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração Pausa

domingo, 21 de outubro de 12

Page 149: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração Pausa Vibração

domingo, 21 de outubro de 12

Page 150: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração Pausa Vibração

domingo, 21 de outubro de 12

Page 151: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração Pausa Vibração Pausa

domingo, 21 de outubro de 12

Page 152: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração Pausa Vibração Pausa

domingo, 21 de outubro de 12

Page 153: Aula android 02.pdf

notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};

Propriedade vibrate do Notification

Pausa Vibração Pausa Vibração Pausa Pausa

domingo, 21 de outubro de 12

Page 154: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 155: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 156: Aula android 02.pdf

Porque não usar uma simples Thread?

domingo, 21 de outubro de 12

Page 157: Aula android 02.pdf

Thread

domingo, 21 de outubro de 12

Page 158: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 159: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 160: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 161: Aula android 02.pdf

domingo, 21 de outubro de 12

Page 162: Aula android 02.pdf

Por isso usamos o service!

domingo, 21 de outubro de 12

Page 163: Aula android 02.pdf

O que é necessário?

domingo, 21 de outubro de 12

Page 164: Aula android 02.pdf

Criar uma classe que herde de Service e implemente Runnable

domingo, 21 de outubro de 12

Page 165: Aula android 02.pdf

Primeiro criar uma tela com um botão...

domingo, 21 de outubro de 12

Page 166: Aula android 02.pdf

Definir no manifest o serviço

<service android:name=".ExemploService"> <intent-filter> <action android:name="SERVICE1"/> </intent-filter></service>

domingo, 21 de outubro de 12

Page 167: Aula android 02.pdf

private Button btnExecutarServico;

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnExecutarServico = (Button) findViewById(R.activity_main.btnExecutarServico); btnExecutarServico.setOnClickListener(this); }

@Override public void onClick(View v) { Intent intent = new Intent("SERVICE1"); startService(intent); }

domingo, 21 de outubro de 12

Page 168: Aula android 02.pdf

public class ExemploService extends Service implements Runnable {

@Override public void onCreate() { super.onCreate(); new Thread(this).start(); } @Override public IBinder onBind(Intent intent) { // Não queremos interagir com o serviço... return null; } @Override public void run() { int contador = 1; Looper.prepare(); while (true) { Log.i("ExemploService","Oi, sou um serviço! Numero " + contador); contador++; try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } } }}

domingo, 21 de outubro de 12