0
domingo, 21 de outubro de 12
Carlos Cavalcanti                           @CarlosCaval   contato@carloscavalcanti.comdomingo, 21 de outubro de 12
Fragmentaçãodomingo, 21 de outubro de 12
Fragmentaçãodomingo, 21 de outubro de 12
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
Extra!      Palestra sobre fragments                     http://www.youtube.com/watch?v=A3z5TO8COZM                       ...
domingo, 21 de outubro de 12
Troca de informações entre telasdomingo, 21 de outubro de 12
MainActivityString mensagemQualquer = "Olá!";Intent intent = new Intent(this, SegundaActivity.class);intent.putExtra("mens...
putExtra()domingo, 21 de outubro de 12
get?Extra()domingo, 21 de outubro de 12
get?Extra()          intent.getIntExtra(name, defaultValue)domingo, 21 de outubro de 12
get?Extra()          intent.getIntExtra(name, defaultValue)           intent.getStringExtra(name)domingo, 21 de outubro de...
get?Extra()          intent.getIntExtra(name, defaultValue)          intent.getLongExtra(name, defaultValue)           int...
get?Extra()          intent.getIntExtra(name, defaultValue)          intent.getLongExtra(name, defaultValue)           int...
get?Extra()          intent.getIntExtra(name, defaultValue)          intent.getLongExtra(name, defaultValue)           int...
get?Extra()          intent.getIntExtra(name, defaultValue)          intent.getLongExtra(name, defaultValue)           int...
get?Extra()          intent.getIntExtra(name, defaultValue)                    intent.getIntArrayExtra(name)          inte...
•       Criar duas activitys•       A activity principal deverá ter um editText e um Button. Ao        pressionar o button...
domingo, 21 de outubro de 12
logcatdomingo, 21 de outubro de 12
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
import android.util.Log;                                        Exemplo Log            //Verbose          	 Log.v("Tag", "...
Filtragemdomingo, 21 de outubro de 12
Filtragemdomingo, 21 de outubro de 12
Tipos de logs e suas cores      Nivel                    Sigla     Cor    Debug                       D        azul  Verbo...
Exercício                 •      Logar os eventos da activitydomingo, 21 de outubro de 12
Ciclo                               de vida                                 da                               activitydomin...
public class CicloDeVidaActivity extends Activity {		   @Override	   protected void onCreate(Bundle savedInstanceState) {	...
Componentes de teladomingo, 21 de outubro de 12
TextView’s<TextView     android:id="@+id/textView1"     android:layout_width="wrap_content"     android:layout_height="wra...
CheckBox e RadioButton <CheckBox         android:id="@+id/checkBox1"         android:layout_width="wrap_content"         a...
CheckBox e RadioButton <CheckBox         android:id="@+id/checkBox1"         android:layout_width="wrap_content"         a...
CheckBox e RadioButton <CheckBox         android:id="@+id/checkBox1"         android:layout_width="wrap_content"         a...
ProgressBar’s           <ProgressBar               android:id="@+id/progressBar3"               style="?android:attr/progr...
ProgressBar’s           <ProgressBar               android:id="@+id/progressBar3"               style="?android:attr/progr...
ProgressBar’s           <ProgressBar               android:id="@+id/progressBar3"               style="?android:attr/progr...
ProgressBar’s           <ProgressBar               android:id="@+id/progressBar3"               style="?android:attr/progr...
ProgressBar e SeekBar   <ProgressBar       android:id="@+id/progressBar1"       style="?android:attr/progressBarStyleHoriz...
ProgressBar e SeekBar   <ProgressBar       android:id="@+id/progressBar1"       style="?android:attr/progressBarStyleHoriz...
ProgressBar e SeekBar   <ProgressBar       android:id="@+id/progressBar1"       style="?android:attr/progressBarStyleHoriz...
QuickContactBadge e RatingBar <QuickContactBadge     android:id="@+id/quickContactBadge1"     android:layout_width="wrap_c...
QuickContactBadge e RatingBar <QuickContactBadge     android:id="@+id/quickContactBadge1"     android:layout_width="wrap_c...
QuickContactBadge e RatingBar <QuickContactBadge     android:id="@+id/quickContactBadge1"     android:layout_width="wrap_c...
QuickContactBadgedomingo, 21 de outubro de 12
RadioButton           <RadioGroup               android:id="@+id/radioGroup1"               android:layout_width="wrap_con...
RadioButton           <RadioGroup               android:id="@+id/radioGroup1"               android:layout_width="wrap_con...
EditText      <EditText          android:id="@+id/editText1"          android:layout_width="fill_parent"          android:...
EditText      <EditText          android:id="@+id/editText1"          android:layout_width="fill_parent"          android:...
ImageView e ImageButton         <ImageView             android:id="@+id/imageView1"             android:layout_width="wrap...
ImageView e ImageButton         <ImageView             android:id="@+id/imageView1"             android:layout_width="wrap...
ImageView e ImageButton         <ImageView             android:id="@+id/imageView1"             android:layout_width="wrap...
Time & Date     <TimePicker         android:id="@+id/timePicker1"         android:layout_width="wrap_content"         andr...
Time & Date     <TimePicker         android:id="@+id/timePicker1"         android:layout_width="wrap_content"         andr...
Exercício •       Criar um novo projeto •       Inserir na tela 3 RadioButton’s           •       Os RadioButton’s deverão...
Exercício •       Criar um novo projeto                                             Dica •       Inserir na tela 3 RadioBu...
Exercício •       Criar um novo projeto                                                 Dica •                            ...
Layoutsdomingo, 21 de outubro de 12
Altura e largura                               Atributo         Descrição          android:layout_height           Especif...
Valores para altura e largura      • fill_parent - Significa que o componente        precisa ocupar todo o tamanho definid...
Valores para altura e largura  Atributo                                        Descriçãofill_parent                    Sig...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    	 android:layout_width="fill_parent"    	 andr...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      	 android:layout_width="fill_parent"      	 ...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     	 android:layout_width="fill_parent"     	 an...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     	 android:layout_width="fill_parent"     	 an...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    	 android:layout_width="fill_parent"    	 andr...
Density-independent pixel (dp)     A conversão de unidades de DP para pixels da tela é     simples: px = dp * (dpi / 160)....
AbsoluteLayout      • Este tipo de layout permite posicionar os        componentes da maneira desejada através        das ...
domingo, 21 de outubro de 12
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    androi...
FrameLayout      • Este layout é utilizado por um componente        que precisa preencher a tela inteira. É        possíve...
LinearLayout      • Este layout é usado para organizar os        componentes na vertical ou horizontal        através do a...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     	 android:layout_width="fill_parent"     	 an...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    	 android:layout_width="fill_parent"    	 andr...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     	 android:layout_width="fill_parent"     	 an...
Peso - weightdomingo, 21 de outubro de 12
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      	 android:layout_width="fill_parent"      	 ...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      	 android:layout_width="fill_parent"      	 ...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    	 android:layout_width="fill_parent"    	 andr...
Quanto maior o weight maior                       será sua importância (peso)domingo, 21 de outubro de 12
TableLayout      • Este é usado para organizar os        componentes em uma tabela, com linhas e        colunasdomingo, 21...
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"    	 android:layout_width="fill_parent"    	 andro...
RelativeLayout      • Este Permite posicionar um componente        relativo a outro, por exemplo, abaixo, acima        ou ...
Atributo                     Descrição        android:layout:below                Posiciona abaixo do componente indicado ...
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="fill_parent"     andr...
BroadcastReceiverdomingo, 21 de outubro de 12
O que é BroadcastReceiver ?domingo, 21 de outubro de 12
Ela é usada para responder a      determinados eventos.domingo, 21 de outubro de 12
Por exemplo...domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
Como implementar?domingo, 21 de outubro de 12
Primeiramente é necessário criar uma      classe que herde do BroadcastReceiverdomingo, 21 de outubro de 12
public class ExemploReceiver extends BroadcastReceiver {	    @Override	    public void onReceive(Context context, Intent i...
public class ExemploReceiver extends BroadcastReceiver {	    @Override	    public void onReceive(Context context, Intent i...
public class ExemploReceiver extends BroadcastReceiver {	    @Override	    public void onReceive(Context context, Intent i...
Além disso...      Para configurar o BroadcastReceiver é      necessário utilizar a tag <receiver> no      arquivo manifes...
<receiver android:name=".ExemploReceiver"        android:permission="android.permission.RECEIVE_BOOT_COMPLETED">     <inte...
domingo, 21 de outubro de 12
Notificationdomingo, 21 de outubro de 12
O que é Notification ?domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
O que é necessário?domingo, 21 de outubro de 12
Criar umdomingo, 21 de outubro de 12
Criar um                               Notificationdomingo, 21 de outubro de 12
Criar um                    NotificationManager                               Notificationdomingo, 21 de outubro de 12
private void criarNotification() {	    	 NotificationManager notificationManager = (NotificationManager)                  ...
private void criarNotification() {	    	 NotificationManager notificationManager = (NotificationManager)                  ...
private void criarNotification() {	    	 NotificationManager notificationManager = (NotificationManager)                  ...
private void criarNotification() {	    	 NotificationManager notificationManager = (NotificationManager)                  ...
private void criarNotification() {	    	 NotificationManager notificationManager = (NotificationManager)                  ...
private void criarNotification() {	    	 NotificationManager notificationManager = (NotificationManager)                  ...
private void criarNotification() {	    	 NotificationManager notificationManager = (NotificationManager)                  ...
private void criarNotification() {	    	 NotificationManager notificationManager = (NotificationManager)                  ...
private void criarNotification() {	    	 NotificationManager notificationManager = (NotificationManager)                  ...
private void criarNotification() {	    	 NotificationManager notificationManager = (NotificationManager)                  ...
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
Notification notification = new Notification(icone, texto, quando);                  Parâmetro                       Descr...
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,                    new Intent(this, TelaParaNotificacaoAc...
notification.setLatestEventInfo(this, "Titulo", "Conteúdo",                                                pendingIntent);...
Exercício                 •      Criar 2 telas                       •       Uma deverá ter um botão que irá criar        ...
Ao pressionar a notificação ela não está sumindo!!!!domingo, 21 de outubro de 12
É necessário mandar fecha-la em algum momento.domingo, 21 de outubro de 12
Através do método cancel() do                NotificationManagerdomingo, 21 de outubro de 12
@Override	    protected void onCreate(Bundle savedInstanceState) {	    	 super.onCreate(savedInstanceState);	    	 setCont...
@Override	    protected void onCreate(Bundle savedInstanceState) {	    	 super.onCreate(savedInstanceState);	    	 setCont...
É possível...domingo, 21 de outubro de 12
É possível...domingo, 21 de outubro de 12
É possível...   fazer o celular vibrar!domingo, 21 de outubro de 12
Propriedade vibrate do Notification        notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};domingo, 21 de...
Propriedade vibrate do Notification        notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};domingo, 21 de...
Propriedade vibrate do Notification                                          Pausa        notification.vibrate = new long[...
Propriedade vibrate do Notification                                          Pausa        notification.vibrate = new long[...
Propriedade vibrate do Notification                                          Pausa   Vibração        notification.vibrate ...
Propriedade vibrate do Notification                                          Pausa   Vibração        notification.vibrate ...
Propriedade vibrate do Notification                                          Pausa   Vibração Pausa        notification.vi...
Propriedade vibrate do Notification                                          Pausa   Vibração Pausa        notification.vi...
Propriedade vibrate do Notification                                          Pausa   Vibração Pausa   Vibração        noti...
Propriedade vibrate do Notification                                          Pausa   Vibração Pausa   Vibração        noti...
Propriedade vibrate do Notification                                          Pausa   Vibração Pausa   Vibração Pausa      ...
Propriedade vibrate do Notification                                          Pausa   Vibração Pausa   Vibração Pausa      ...
Propriedade vibrate do Notification                                          Pausa   Vibração Pausa   Vibração Pausa   Pau...
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
Porque não usar uma simples                   Thread?domingo, 21 de outubro de 12
Threaddomingo, 21 de outubro de 12
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
domingo, 21 de outubro de 12
Por isso usamos o service!domingo, 21 de outubro de 12
O que é necessário?domingo, 21 de outubro de 12
Criar uma classe que herde de         Service e implemente Runnabledomingo, 21 de outubro de 12
Primeiro criar uma tela com um botão...domingo, 21 de outubro de 12
Definir no manifest o serviço                 <service android:name=".ExemploService">                    <intent-filter> ...
private Button btnExecutarServico;                  @Override                  public void onCreate(Bundle savedInstanceSt...
public class ExemploService extends Service implements Runnable {	    @Override	    public void onCreate() {	    	   super...
Upcoming SlideShare
Loading in...5
×

Aula android 02.pdf

2,594

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,594
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
254
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Aula android 02.pdf"

  1. 1. domingo, 21 de outubro de 12
  2. 2. Carlos Cavalcanti @CarlosCaval contato@carloscavalcanti.comdomingo, 21 de outubro de 12
  3. 3. Fragmentaçãodomingo, 21 de outubro de 12
  4. 4. Fragmentaçãodomingo, 21 de outubro de 12
  5. 5. domingo, 21 de outubro de 12
  6. 6. domingo, 21 de outubro de 12
  7. 7. domingo, 21 de outubro de 12
  8. 8. domingo, 21 de outubro de 12
  9. 9. Extra! Palestra sobre fragments http://www.youtube.com/watch?v=A3z5TO8COZM Fragmentsdomingo, 21 de outubro de 12
  10. 10. domingo, 21 de outubro de 12
  11. 11. Troca de informações entre telasdomingo, 21 de outubro de 12
  12. 12. MainActivityString mensagemQualquer = "Olá!";Intent intent = new Intent(this, SegundaActivity.class);intent.putExtra("mensagem", mensagemQualquer);startActivity(intent);SegundaActivityIntent intent = getIntent();String mensagem = intent.getStringExtra("mensagem");domingo, 21 de outubro de 12
  13. 13. putExtra()domingo, 21 de outubro de 12
  14. 14. get?Extra()domingo, 21 de outubro de 12
  15. 15. get?Extra() intent.getIntExtra(name, defaultValue)domingo, 21 de outubro de 12
  16. 16. get?Extra() intent.getIntExtra(name, defaultValue) intent.getStringExtra(name)domingo, 21 de outubro de 12
  17. 17. get?Extra() intent.getIntExtra(name, defaultValue) intent.getLongExtra(name, defaultValue) intent.getStringExtra(name)domingo, 21 de outubro de 12
  18. 18. get?Extra() intent.getIntExtra(name, defaultValue) intent.getLongExtra(name, defaultValue) intent.getBooleanExtra(name, defaultValue) intent.getStringExtra(name)domingo, 21 de outubro de 12
  19. 19. get?Extra() intent.getIntExtra(name, defaultValue) intent.getLongExtra(name, defaultValue) intent.getBooleanExtra(name, defaultValue) intent.getStringExtra(name) intent.getFloatExtra(name, defaultValue)domingo, 21 de outubro de 12
  20. 20. get?Extra() intent.getIntExtra(name, defaultValue) intent.getLongExtra(name, defaultValue) intent.getBooleanExtra(name, defaultValue) intent.getStringExtra(name) intent.getFloatArrayExtra(name) intent.getFloatExtra(name, defaultValue)domingo, 21 de outubro de 12
  21. 21. get?Extra() intent.getIntExtra(name, defaultValue) intent.getIntArrayExtra(name) intent.getLongExtra(name, defaultValue) intent.getBooleanExtra(name, defaultValue) intent.getStringExtra(name) intent.getFloatArrayExtra(name) intent.getFloatExtra(name, defaultValue)domingo, 21 de outubro de 12
  22. 22. • 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 textViewMainActivityString mensagemQualquer = "Olá!";Intent intent = new Intent(this, SegundaActivity.class);intent.putExtra("mensagem", mensagemQualquer);startActivity(intent);SegundaActivityIntent intent = getIntent();String mensagem = intent.getStringExtra("mensagem");domingo, 21 de outubro de 12
  23. 23. domingo, 21 de outubro de 12
  24. 24. logcatdomingo, 21 de outubro de 12
  25. 25. domingo, 21 de outubro de 12
  26. 26. domingo, 21 de outubro de 12
  27. 27. domingo, 21 de outubro de 12
  28. 28. import android.util.Log; 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");domingo, 21 de outubro de 12
  29. 29. Filtragemdomingo, 21 de outubro de 12
  30. 30. Filtragemdomingo, 21 de outubro de 12
  31. 31. Tipos de logs e suas cores Nivel Sigla Cor Debug D azul Verbose V preto Info I verde Warn W laranja Error E vermelhodomingo, 21 de outubro de 12
  32. 32. Exercício • Logar os eventos da activitydomingo, 21 de outubro de 12
  33. 33. Ciclo de vida da activitydomingo, 21 de outubro de 12
  34. 34. public class CicloDeVidaActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i("Teste", "onCreate"); } @Override protected void onResume() { @Override super.onResume(); protected void onStart() { Log.i("Teste", "onResume"); super.onStart(); } Log.i("Teste", "onStart"); } @Override protected void onPause() { @Override super.onPause(); protected void onRestart() { Log.i("Teste", "onPause"); super.onRestart(); } Log.i("Teste", "onRestart"); } @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
  35. 35. Componentes de teladomingo, 21 de outubro de 12
  36. 36. 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
  37. 37. 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
  38. 38. 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
  39. 39. 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
  40. 40. 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
  41. 41. 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
  42. 42. 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
  43. 43. 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
  44. 44. 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
  45. 45. 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
  46. 46. 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
  47. 47. 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
  48. 48. 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
  49. 49. 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
  50. 50. QuickContactBadgedomingo, 21 de outubro de 12
  51. 51. 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
  52. 52. 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
  53. 53. 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
  54. 54. 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
  55. 55. 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
  56. 56. 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
  57. 57. 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
  58. 58. 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
  59. 59. 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
  60. 60. 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-ladomingo, 21 de outubro de 12
  61. 61. Exercício • Criar um novo projeto Dica • 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-ladomingo, 21 de outubro de 12
  62. 62. Exercício • Criar um novo projeto Dica • RadioButton radio0 = (RadioButton) findViewById(R.id.radio0); Inserir na tela 3 RadioButton’s if (radio0.isChecked()) ... • 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-ladomingo, 21 de outubro de 12
  63. 63. Layoutsdomingo, 21 de outubro de 12
  64. 64. Altura e largura Atributo Descrição android:layout_height Especifica a altura de um componente android:layout_width Especifica a largura de um componentedomingo, 21 de outubro de 12
  65. 65. 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 componentedomingo, 21 de outubro de 12
  66. 66. Valores para altura e largura Atributo Descriçãofill_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 telaValor Podemos também passar um valor númerico informando o tamanho do componentedomingo, 21 de outubro de 12
  67. 67. <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
  68. 68. <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
  69. 69. <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
  70. 70. <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
  71. 71. <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
  72. 72. 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
  73. 73. 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
  74. 74. domingo, 21 de outubro de 12
  75. 75. <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
  76. 76. 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
  77. 77. LinearLayout • Este layout é usado para organizar os componentes na vertical ou horizontal através do atributo android:orientation.domingo, 21 de outubro de 12
  78. 78. <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
  79. 79. <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
  80. 80. <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
  81. 81. Peso - weightdomingo, 21 de outubro de 12
  82. 82. <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
  83. 83. <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
  84. 84. <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
  85. 85. Quanto maior o weight maior será sua importância (peso)domingo, 21 de outubro de 12
  86. 86. TableLayout • Este é usado para organizar os componentes em uma tabela, com linhas e colunasdomingo, 21 de outubro de 12
  87. 87. <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
  88. 88. RelativeLayout • Este Permite posicionar um componente relativo a outro, por exemplo, abaixo, acima ou ao lado de um componente já existentedomingo, 21 de outubro de 12
  89. 89. Atributo Descrição android: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 componentedomingo, 21 de outubro de 12
  90. 90. <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
  91. 91. BroadcastReceiverdomingo, 21 de outubro de 12
  92. 92. O que é BroadcastReceiver ?domingo, 21 de outubro de 12
  93. 93. Ela é usada para responder a determinados eventos.domingo, 21 de outubro de 12
  94. 94. Por exemplo...domingo, 21 de outubro de 12
  95. 95. domingo, 21 de outubro de 12
  96. 96. domingo, 21 de outubro de 12
  97. 97. domingo, 21 de outubro de 12
  98. 98. domingo, 21 de outubro de 12
  99. 99. domingo, 21 de outubro de 12
  100. 100. Como implementar?domingo, 21 de outubro de 12
  101. 101. Primeiramente é necessário criar uma classe que herde do BroadcastReceiverdomingo, 21 de outubro de 12
  102. 102. 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
  103. 103. 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
  104. 104. 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
  105. 105. Além disso... Para configurar o BroadcastReceiver é necessário utilizar a tag <receiver> no arquivo manifest.domingo, 21 de outubro de 12
  106. 106. <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
  107. 107. domingo, 21 de outubro de 12
  108. 108. Notificationdomingo, 21 de outubro de 12
  109. 109. O que é Notification ?domingo, 21 de outubro de 12
  110. 110. domingo, 21 de outubro de 12
  111. 111. O que é necessário?domingo, 21 de outubro de 12
  112. 112. Criar umdomingo, 21 de outubro de 12
  113. 113. Criar um Notificationdomingo, 21 de outubro de 12
  114. 114. Criar um NotificationManager Notificationdomingo, 21 de outubro de 12
  115. 115. 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
  116. 116. 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
  117. 117. 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
  118. 118. 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
  119. 119. 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
  120. 120. 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
  121. 121. 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
  122. 122. 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
  123. 123. 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
  124. 124. 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
  125. 125. domingo, 21 de outubro de 12
  126. 126. domingo, 21 de outubro de 12
  127. 127. domingo, 21 de outubro de 12
  128. 128. domingo, 21 de outubro de 12
  129. 129. 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
  130. 130. PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TelaParaNotificacaoActivity.class), 0); 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 fornecidadomingo, 21 de outubro de 12
  131. 131. notification.setLatestEventInfo(this, "Titulo", "Conteúdo", pendingIntent); 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 PendingIntentdomingo, 21 de outubro de 12
  132. 132. 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
  133. 133. Ao pressionar a notificação ela não está sumindo!!!!domingo, 21 de outubro de 12
  134. 134. É necessário mandar fecha-la em algum momento.domingo, 21 de outubro de 12
  135. 135. Através do método cancel() do NotificationManagerdomingo, 21 de outubro de 12
  136. 136. @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
  137. 137. @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
  138. 138. É possível...domingo, 21 de outubro de 12
  139. 139. É possível...domingo, 21 de outubro de 12
  140. 140. É possível... fazer o celular vibrar!domingo, 21 de outubro de 12
  141. 141. Propriedade vibrate do Notification notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};domingo, 21 de outubro de 12
  142. 142. Propriedade vibrate do Notification notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};domingo, 21 de outubro de 12
  143. 143. Propriedade vibrate do Notification Pausa notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};domingo, 21 de outubro de 12
  144. 144. Propriedade vibrate do Notification Pausa notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};domingo, 21 de outubro de 12
  145. 145. Propriedade vibrate do Notification Pausa Vibração notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};domingo, 21 de outubro de 12
  146. 146. Propriedade vibrate do Notification Pausa Vibração notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};domingo, 21 de outubro de 12
  147. 147. Propriedade vibrate do Notification Pausa Vibração Pausa notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};domingo, 21 de outubro de 12
  148. 148. Propriedade vibrate do Notification Pausa Vibração Pausa notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};domingo, 21 de outubro de 12
  149. 149. Propriedade vibrate do Notification Pausa Vibração Pausa Vibração notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};domingo, 21 de outubro de 12
  150. 150. Propriedade vibrate do Notification Pausa Vibração Pausa Vibração notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};domingo, 21 de outubro de 12
  151. 151. Propriedade vibrate do Notification Pausa Vibração Pausa Vibração Pausa notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};domingo, 21 de outubro de 12
  152. 152. Propriedade vibrate do Notification Pausa Vibração Pausa Vibração Pausa notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};domingo, 21 de outubro de 12
  153. 153. Propriedade vibrate do Notification Pausa Vibração Pausa Vibração Pausa Pausa notification.vibrate = new long[] {100, 500, 200, 500, 200, 500};domingo, 21 de outubro de 12
  154. 154. domingo, 21 de outubro de 12
  155. 155. domingo, 21 de outubro de 12
  156. 156. Porque não usar uma simples Thread?domingo, 21 de outubro de 12
  157. 157. Threaddomingo, 21 de outubro de 12
  158. 158. domingo, 21 de outubro de 12
  159. 159. domingo, 21 de outubro de 12
  160. 160. domingo, 21 de outubro de 12
  161. 161. domingo, 21 de outubro de 12
  162. 162. Por isso usamos o service!domingo, 21 de outubro de 12
  163. 163. O que é necessário?domingo, 21 de outubro de 12
  164. 164. Criar uma classe que herde de Service e implemente Runnabledomingo, 21 de outubro de 12
  165. 165. Primeiro criar uma tela com um botão...domingo, 21 de outubro de 12
  166. 166. 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
  167. 167. 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
  168. 168. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×