Implementação de Interfaces gráficas

Documentos relacionados
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Desenvolvimento de um aplicativo básico usando o Google Android

Computação Móvel ActionBar e Temas (Ref. Cap. 5)

TUTORIAL ANDROID ACTIVITY - CONSTRUÇÃO DE TELAS

Login. Criar uma nova Activity. Login. Luiz Eduardo Guarino de Vasconcelos

Primeira Aplicação Android Olá Mundo. Prof. Fellipe Aleixo

Programação para a Plataforma Android Aula 11. Banco de Dados

Programação para Android. Aula 06: Activity, menus e action bar

Provedores de Conteúdo

Programação para a Plataforma Android Aula 17. Broadcasts

Conhecendo e editando o seu perfil

Programação para a Plataforma Android Aula 4. Objetos Gráficos

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

Módulo 2 - Novas Activities Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Notification. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Painel Administrativo Westlock

JavaFX Classe de Controle e Eventos. Prof. Vicente Paulo de Camargo

Apresentação de um Processo Cria4vo de Desenvolvimento de uma App Android. Realização de Dinâmica Hands- On para Construção de uma App Android

Introdução ao Android. SECAP 2014 Prof. Rone Ilídio - UFSJ

PROGRAMAÇÃO ORIENTADA A OBJETOS I. Prof. Me. Hélio Esperidião

Criando o primeiro projeto para entender a estrutura do app

Tutorial Android Speech

Android Banco de Dados. Ivan Nicoli

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

Manual SIGOSMS Aplicação de Gerenciamento e Envio SMS

Prof: Ricardo Quintão Site:

Programação de Dispositivos Móveis

Firebase. Acesse o site Acesse o menu Go to Console. Acesse com uma conta Google ou crie uma conta.

MANUAL DE PUBLICAÇÃO NO PORTAL CAMPUS MATÃO

BroadcastReceiver. O que são mensagens broadcasts? Use notificações! (Serão explicadas em breve)

Classes e Objetos. Sintaxe de classe em Java

1. Introdução O que é Microsoft PowerPoint Recursos de PowerPoint. Introdução

Programação para Dispositivos Móveis

Escola Olímpio Curso: Técnico em Informática. Introdução e instalação

Contrutor de Página para Frontend e Backend

LibreOffice Writer. Editor de texto

Log, Ciclo de Vida e Diálogos. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Retrofit. Criar um novo projeto. Selecionar a API. Retrofit para consumir Web Service Luiz Eduardo Guarino de Vasconcelos

Programação Orientada a Objetos (utilizando C#) Professor Emiliano S. Monteiro Versão 12 Out/2016.

Windows Forms Applications - Introdução. Prof. Robinson Alves IFRN

Apêndice 1. Recomendações para testes de módulos

2019/04/25 10:36 1/10 1 Geral

Palavras Reservadas da Linguagem Java

Programação para Android. Aula 05: Estilos e temas; galeria de imagens

Manual do Professor AVA - Moodle/Unesp (versão 3.0) Grupos e agrupamentos

Criando um Joguinho 2D. Prof. Fellipe Aleixo

Interfaces no Android : widgets. Continuação

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 3- Desenvolvendo Interfaces Mais Ricas

1. No seu celular, acesse o App Store (caso possua iphone) ou o Play Store (caso possua celular com sistema Android); 2. Baixe o aplicativo ABC

UNIVERSIDADE FEDERAL DE PELOTAS. Índice

Executar uma macro clicando em um botão da Barra de Ferramentas de Acesso Rápido

Tutorial de Administração de sites do Portal C3

TUTORIAL FGV WIKI Professor

Programação para a Plataforma Android Aula 16. Fragmentos

MANUAL DE PROCEDIMENTOS - UTILIZAÇÃO DO APLICATIVO TICOMIA COMERCIAL FRANQUEADO MP CL UN 02-00

INDICE INTRODUÇÃO CAPÍTULO 1 7 Iniciando o Photoshop CC... 8 Conhecendo o Photoshop CC... 9

Manual do Usuário Webmail SoftSul

Android e Bancos de Dados

Google Android. Componentes Gráficos

JavaFX Classe de Controle e Eventos. Prof. Vicente Paulo de Camargo

Introdução a Tecnologia da Informação

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

Android e Facebook. Felipe Silveira

Modelo de Interação (revisão) Design de IHC Da interação para o Design da Interface

Outlook Web App (OWA)

DISTRIBUINDO SUA APLICAÇÃO

LibreOffice Calc (Editor de planilha eletrônica) Lara Popov Zambiasi Bazzi Oberderfer professores.chapeco.ifsc.edu.

Google Android. Uma abordagem prática e didática. Rafael Guimarães Sakurai, Diogo Carleto, erodrigo Cascarrolho

Tutorial Django e SVN na IDE Pycharm

Linguagem de Programação II Implementação

Android e Bancos de Dados

Transcrição:

Implementação de Interfaces gráficas

Elementos de UI Menus Dialogs Action bar Notifications

Menus

Menus Android oferece três tipos de menu Options Menu Menu padrão de aplicações Android Context Menu Menu flutuante e contextual Popup menu A partir da versão 3.0

Options Menu Modelo principal de menus no android Diretamente relacionado ao Activity em execução Ativado pelo botão MENU do aparelho ou na barra de ações (em aparelhos que rodam Android 3.x). A partir do Android 3.0 (API level 11), os aparelhos não são obrigados a ter um botão dedicado à opção de Menu Aparece na parte inferior da tela (Android 2.x) ou na barra de ações (Android 3.x)

Options Menu Android 2.x O menu de opções só apresenta 6 itens de menu. Se a quantidade de itens for maior que 6, a opção More é automaticamente adicionada.

Options Menu Android 3.x. Action Bar

Options Menu Quando o Android cria o Options Menu, o método oncreateoptionsmenu() da atividade em execução é invocado Para definir o menu de sua atividade basta redefinir esse método private int MENU_ADD = 1; private int MENU_RESET = 2; @Override public boolean oncreateoptionsmenu(menu menu) { menu.add(menu.none, MENU_ADD, Menu.NONE, "Add").setIcon(R.drawable.ic_menu_add); menu.add(menu.none, MENU_RESET, Menu.NONE, "Reset").setIcon(R.drawable.ic_menu_refresh); } return(super.oncreateoptionsmenu(menu)); Assinatura do método: add(int groupid, int itemid, int order, CharSequence title)

Definindo o Menu (Declarativo) Para criar um menu de maneira declarativa deve-se: Criar um arquivo XML no diretório res/menu/ Contendo os seguintes elementos <menu> - Elemento raiz do XML e deve conter os itens de menu <item> - Representa um item de menu e pode ter outro menu para representar um submenu <group> - Item opcional de agrupamento de itens (invisível e serve para definir propriedades comuns)

Menu XML <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/new_game" android:icon="@drawable/ic_new_game" android:title="@string/new_game" /> <item android:id="@+id/help" android:icon="@drawable/ic_help" android:title="@string/help" /> </menu> menu_basico.xml

Carregando o menu XML @Override public boolean oncreateoptionsmenu(menu menu) { MenuInflater inflater = getmenuinflater(); inflater.inflate(r.menu.menu_basico, menu); return true; }

Tratando as ações de menu @Override public boolean onoptionsitemselected(menuitem item) { // Handle item selection switch (item.getitemid()) { case R.id.new_game: newgame(); return true; case R.id.help: showhelp(); return true; default: return super.onoptionsitemselected(item); } }

Modificando os itens do menu É possível modificar os itens de menu durante a execução da Activity No Android 2.3 e inferior, o método onprepareoptionsmenu() é chamado toda vez que o usuário abre o Options Menu Deve-se redefinir este método para atualizar os itens de menu No Android 3.0 e superior, você deve chamar o método invalidateoptionsmenu() quando quiser atualizar o menu O Android chamará o onprepareoptionsmenu()

Context Menu Similar aos menus contextuais em PCs que são ativados ao se clicar com o botão direito do mouse No Android eles são ativados por um pressionamento demorado em um componente visual Diretamente relacionados ao View pressionado

Exemplo Context Menu

Formas do Context Menu 1. Flutuante Modelo padrão de menu contextual 2. Action mode Disponível a partir do Android 3 (API 11) (1) (2)

Menu flutuante - Passos Para criar um menu de contexto deve-se 1. Registrar a view através do método registerforcontextmenu() 2. Redefinir o método oncreatecontextmenu() da Activity para definir o menu 3. Redefinir o método oncontextitemselected() para tratar as ações de clique

Menu flutuante - Definição @Override public void oncreatecontextmenu(contextmenu menu, View v, ContextMenu.ContextMenuInfo menuinfo) { super.oncreatecontextmenu(menu, v, menuinfo); menu.setheadertitle("context Menu"); menu.add(0, menu.first, Menu.NONE,"Item 1").setIcon(R.drawable.menu_item); menu.add(0, menu.first+1, Menu.NONE, "Item 2").setCheckable(true); menu.add(0, menu.first+2, Menu.NONE, "Item 3").setShortcut( 3, 3 ); SubMenu sub = menu.addsubmenu("submenu"); sub.add("submenu Item"); } OU @Override public void oncreatecontextmenu(contextmenu menu, View v, ContextMenuInfo menuinfo) { } super.oncreatecontextmenu(menu, v, menuinfo); MenuInflater inflater = getmenuinflater(); inflater.inflate(r.menu.context_menu, menu);

Menu flutuante Tratando ações Contém informações sobre a View selecionada @Override public boolean oncontextitemselected(menuitem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getmenuinfo(); switch (item.getitemid()) { case R.id.edit: editnote(info.id); return true; case R.id.delete: deletenote(info.id); return true; default: return super.oncontextitemselected(item); } }

Menu no modo Action Mode - Passos 1. Implementar a interface ActionMode.Callback Possui métodos de callback para tratar o ciclo de vida e eventos dos itens de ação no ActionMode 2. Chamar o método startactionmode() quando desejar mostrar a barra de ações

Submenu Menu que o usuário pode abrir a partir da seleção de um item de outro menu Útil quando um sistema tem muitas opções de menu Android não permite submenus aninhados

Definindo submenus <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/file" android:icon="@drawable/file" android:title="@string/file" > <!-- "file" submenu --> <menu> <item android:id="@+id/create_new" android:title="@string/create_new" /> <item android:id="@+id/open" android:title="@string/open" /> </menu> </item> </menu>

Itens de menu checkables <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:checkablebehavior="single"> <item android:id="@+id/red" android:title="@string/red" /> <item android:id="@+id/blue" android:title="@string/blue" /> </group> </menu>

Dialogs

Dialogs Android possui os seguintes tipos de Dialogs implementados AlertDialog ProgressDialog DatePickerDialog TimePickerDialog Você pode criar seus próprios Dialogs estendendo a classe Dialog

Mostrando um Dialog Deve-se chamar o método showdialog(int) no momento em que se deseja mostrar o Dialog showdialog(dialog_paused_id);

Criando um Dialog Deve-se redefinir os métodos: oncreatedialog(int) Chamado uma única vez, quando o Dialog é criado Deve-se instanciar o Dialog e retorná-lo onpreparedialog(int, Dialog) Chamado toda vez que o Dialog é aberto Pode-se alterar informações do Dialog

Criando um Dialog protected Dialog oncreatedialog(int id) { Dialog dialog; switch(id) { case DIALOG_PAUSED_ID: // do the work to define the pause Dialog break; case DIALOG_GAMEOVER_ID: // do the work to define the game over Dialog break; default: dialog = null; } return dialog; }

Criando um AlertDialog AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setmessage("are you sure you want to exit?").setcancelable(false).setpositivebutton("yes", new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int id) { MyActivity.this.finish(); } }).setnegativebutton("no", new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create();

Criando um ProgressDialog ProgressDialog dialog = ProgressDialog.show(MyActivity.this, "", "Loading. Please wait...", true); ProgressDialog progressdialog; progressdialog = new ProgressDialog(mContext); progressdialog.setprogressstyle(progressdialog.style_horizontal); progressdialog.setmessage("loading..."); progressdialog.setcancelable(false);

Action bar Widget que substitui a barra de título tradicional em aplicações Android 3.X Título da Activity Options Menu Logo da Aplicação Itens de ação

Adicionando/removendo a Action bar Automaticamente adicionado em aplicações Android 3.X AndroidManifest.xml <uses-sdk android:targetsdkversion="11" /> Pode ser removido para uma Activity específica <activity android:theme="@android:style/theme.holo.noactionbar"> ou ActionBar actionbar = getactionbar(); actionbar.hide();

Adicionando itens de ação Itens do Options Menu podem aparecer como itens de ação Menu em XML <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_save" android:icon="@drawable/ic_menu_save" android:title="@string/menu_save" android:showasaction="ifroom withtext" /> <item android:id="@+id/menu_delete" android:icon="@drawable/ic_menu_delete" android:title="@string/menu_delete" android:showasaction="ifroom withtext" /> </menu>

Mais sobre Action Bar Ícone da aplicação pode responder a ações do usuário Adicionar Action Views Adicionar Tabs Modificar o estilo Veja detalhes em: http://developer.android.com/guide/topics/ui/actionbar.html

Notifications Além do uso de Dialogs, existem mais duas formas de notificar o usuário Toast Notifications Status Bar Notification

Toast Notifications Mensagens de popup que aparecem e desaparecem automaticamente Não permitem interação com usuário Podem ser geradas por Activities e Services Context context = getapplicationcontext(); CharSequence text = "Hello toast!"; int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(context, text, duration); toast.show();

Status Bar Notifications Podem ser geradas por Activities e Services Para criar um Status Bar Notification, deve-se: 1. Obter uma referência para o NotificationManager 2. Criar uma instância de Notification 3. Definir a mensagem expandida e o Intent 4. Passar a instância de Notification para o NotificationManager

Exibindo uma notificação: Passo 1 Obter uma referência para o NotificationManager String ns = Context.NOTIFICATION_SERVICE; NotificationManager mnotificationmanager = (NotificationManager) getsystemservice(ns);

Exibindo uma notificação: Passo 2 Criar uma instância de Notification int icon = R.drawable.notification_icon; CharSequence tickertext = "Hello"; long when = System.currentTimeMillis(); Notification notification = new Notification(icon, tickertext, when);

Exibindo uma notificação: Passo 3 Definir a mensagem expandida e o Intent Context context = getapplicationcontext(); CharSequence contenttitle = "My notification"; CharSequence contenttext = "Hello World!"; Intent notificationintent = new Intent(this, MyClass.class); PendingIntent contentintent = PendingIntent.getActivity(this, 0, notificationintent, 0); notification.setlatesteventinfo(context, contenttitle, contenttext, contentintent);

Exibindo uma notificação: Passo 4 Passar a instância de Notification para o NotificationManager private static final int HELLO_ID = 1; mnotificationmanager.notify(hello_id, notification);

FIM