Android INTERFACE GRÁFICA & LAYOUT. Prof. Dr. Joaquim assunção.

Documentos relacionados
Android Layout Manager. Ivan Nicoli

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

Módulo 4 - Interface Gráfica Gerenciadores de Layout. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Views Interface Gráfica

Mais Elementos da Interface com o Usuário. Prof. Fellipe Aleixo

Programação de Dispositivos Móveis

Computação Móvel Gerenciadores de Layout (Ref. Cap. 6)

Tutorial Android Speech

Trabalhando com Mensagens. File > New > New Project. Uso de mensagens (Toast) Luiz Eduardo Guarino de Vasconcelos

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

Programa de Dispositivos Móveis

============================== Exemplo ListView MainActivity.java

Prof: Ricardo Quintão Site:

Android. Interfaces: widgets

PROPOSTA DE UM PADRÃO DE PROJETO PARA ANDROID UTILIZANDO A WEB

Programação para Dispositivos Móveis. Banco de Dados (SQLite)

Capítulo 08: Layouts customizados

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

Programação para Android

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

Prof: Ricardo Quintão Site:

INTRODUÇÃO À PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS. ADS 6º Período

Criando as primeiras telas (Activity)

Fragments. Criar um novo projeto. Selecionar a API. Navigation Drawer Activity. Fragments. Luiz Eduardo Guarino de Vasconcelos

Programação de Dispositivos Móveis

Programação para Dispositivos Móveis

Google Android. Componentes Gráficos

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

Universidade Federal do Paraná

AULA 2. Minicurso PET-EE UFRN

Avisos e Notificações aos Usuários

Desenvolvimento de Aplicativos Android

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

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

Mensagens. Para conhecimento. Renomear arquivos. Botão Direito no arquivo > Rafactor > Rename Shift + F6

Construindo layouts complexos em Android

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

Programação para Dispositivos Móveis

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

Android Banco de Dados. Ivan Nicoli

Programa de Dispositivos Móveis

Programação para a Plataforma Android Aula 2. Aula 2 Views

Programação Android. Aula 03

Introdução ao Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Desenvolvimento com Android Studio. Aula 02 Widgets, Manipulação de Dados e Programação de Eventos

Introdução ao Desenvolvimento para Sistema Operacional Android

Programando Intenções. Prof. Fellipe Aleixo

Desenvolvimento com Android Studio Aula 01 Instalação e Configuração do Ambiente de Desenvolvimento, Estrutura de um projeto Android

Android. Interfaces: widgets

A documentação do Android, disponível em

Programação Android. Objetivos Gerais:

PROGRAMAÇÃO MOBILE Estudo de Caso

Projeto GoHome Tutorial Sobre o serviço do Google Maps no Android

Programação para Android. Aula 08: Persistência de dados SQL

TUTORIAL ANDROID ACTIVITY - CONSTRUÇÃO DE TELAS

Criando o primeiro projeto para entender a estrutura do app

Navegar entre páginas Necessário o uso de Intent. Intenção de ir a algum lugar, acessar outros recursos, outros apps.

Desenvolvimento para Android Prá9ca 2. Prof. Markus Endler

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

Curso online de Fundamentos em Android. Plano de Estudo

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

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

Programando Passo-a-Passo 2ª Edição De : Luciano Alves (lucianopascal@yahoo.com.br)

Programação para Dispositivos Móveis

Programação para a Plataforma Android Aula 13. Localização

HCI Summer Workshop. Android #1. Tiago Guerreiro.

Programação para a Plataforma Android Aula 7. Mul$mídia

ANDROID APRENDIZ. Um guia para iniciantes Crie seu primeiro aplicativo Android

Curso de Android - 2 Novas Activities. SECAP Prof. Rone Ilídio - UFSJ

FACULDADE DE TECNOLOGIA SENAC PELOTAS

Google Android. Uma abordagem prática e didática. Rafael Guimarães Sakurai. Esse livro está à venda em

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Android Core. Felipe Silveira felipesilveira.com.br. Aula 6

EA998 Tópicos em Engenharia de Computação MC933 Tópicos Especiais em Ciência da Computação Android: Interface com o Usuário

Interfaces no Android : widgets. Continuação

6ª Edição. De : Luciano Alves da Silva (lucianopascal@yahoo.com.br) ApostilaDeAndroid. Rio de Janeiro - Outubro 2013

Comunicação entre A0vidades

ÍNDICE INTRODUÇÃO... 3 CAPÍTULO 1 CAPÍTULO 2 CAPÍTULO 3 CAPÍTULO 4. Adobe InDesign CC 5

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 1- Interfaces Gráficas com Swing

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Android I N T R O D U Ç Ã O À P R O G R A M A Ç Ã O P R O F E S S O R L E O N A R D O C. R. S O A R E S - L A R B A C K

Componentes GUI A aparência e maneira como um usuário pode interagir com componentes AWT diferem de acordo com a plataforma. Componentes Swing permite

Android Activity. Ivan Nicoli

Introdução ao ASP.NET

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Usando e Gerenciando Activities

1. SQLite No Android 2. API de Acesso Listagem 1 SQLiteDatabase SQLiteOpenHelper Listagem 1 Android Studio SQLiteOpenHelper Android Studio

Escrito por Neri Neitzke Qua, 12 de Outubro de :40 - Última atualização Seg, 26 de Março de :50

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

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

AlarmManager. Programação em Dispositivos Móveis (PDM) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Computação Móvel Interface Gráfica - View (Ref. Cap. 7)

Dados dinâmicos em um relatório de Tabela Dinâmica ou de Gráfico

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

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

Prof: Ricardo Quintão Site:

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

JAVA. Gerenciadores de Layout. Tiago Alves de Oliveira

Computação II Orientação a Objetos

Transcrição:

Android INTERFACE GRÁFICA & LAYOUT Prof. Dr. Joaquim assunção.

Graphical User Interface (GUI) Quando o Android estava sendo inventado, seus designers enfrentaram muitas escolhas cujo resultado seria determinar o sucesso ou o fracasso de seu projeto. Eles haviam rejeitado todos os outros sistemas operacionais de smartphones, tanto de código fechado e aberto. Eles criaram a sua própria, sobre o kernel do Linux... A interface foi uma questão a ser resolvida. Opções a serem implementadas: JavaME, Swing, SWT, ou nenhuma destas.

Graphical User Interface (GUI) A opção final, e a escolhida, era começar uma nova interface. Os designers do Android construíram o seu próprio kit de ferramentas de interface gráfica, projetado especificamente para smartphones. Mas eles usaram muitas das boas ideias dos outros kits de ferramentas, e aprenderam com os erros que haviam sido feitas ao longo do caminho.

Graphical User Interface (GUI) A interface do aplicativo é tudo o que o usuário pode ver e interagir. O Android oferece uma variedade de componentes préconstruídos, tais como objetos de layout estruturados e controles de interface do usuário que permitem criar a interface gráfica do usuário para seu aplicativo. O Android também fornece outros módulos de interface do usuário para interfaces especiais, tais como caixas de diálogo, notificações e menus.

Graphical User Interface (GUI) Existe um padrão. http://unitid.nl/androidpatterns/

Graphical User Interface (GUI) Problema Muitos dos desenvolvedores, mesmo os bons, são muito ruins em design de interface. Solução...

Layout Usados para organizar os componentes gráficos na tela do dispositivo.

Layout

Layout - Linear <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingleft="16dp" android:paddingright="16dp" android:orientation="vertical" > <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/to" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/subject" /> <EditText android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:gravity="top" android:hint="@string/message" /> <Button android:layout_width="100dp" android:layout_height="wrap_content" android:layout_gravity="right" android:text="@string/send" /> </LinearLayout> Reproduza este Layout

Layout - Linear LinearLayout é um layout que alinha todas os descendentes em uma única direção, vertical ou horizontalmente. Você pode especificar a direção do layout com o atributo android:orientation.

Layout - Linear Todos os filhos de um LinearLayout são empilhados um após o outro, de modo que uma lista vertical terá apenas uma criança por linha, não importa quão grande eles são, e uma lista horizontal será apenas uma linha de altura. A LinearLayout respeita margens entre descendentes e a gravidade (direita, centro ou alinhamento à esquerda) de cada descendentes (children... Descendentes/crianças/filhos).

Layout - Relative Exibe os descendentes em posições relativas. A posição de cada ponto de vista pode ser especificado como em relação aos elementos irmãos (tais como para a esquerda, de ou abaixo de outro ponto de vista) ou em posições relativas para a área de pai RelativeLayout (tal como alinhada ao fundo, à esquerda ou ao centro).

Layout - Relative Permite especificar a posição dos descendentes em relação à vista principal ou para o outro (especificado pelo ID). Pode-se alinhar dois elementos de borda direita, ou fazer um abaixo de outro, centrada na tela, centrada esquerda, e assim por diante. Por padrão, todos os pontos de vista da criança são desenhados na parte superior esquerda do layout, portanto, você deve definir a posição de cada vista usando as várias propriedades de layout disponíveis a partir RelativeLayout.LayoutParams.

Layout - Relative android:layout_alignparenttop Se "true", faz a borda superior desta visão igual a borda superior do pai. android:layout_centervertical Se "true", centraliza verticalmente com seu pai. android:layout_below Coloca a borda superior em baixo de uma determinada borda pelo ID. android:layout_torightof Coloca a borda esquerda a direita de uma borda pelo ID.

Layout - Relative <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingleft="16dp" android:paddingright="16dp" > <EditText android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/reminder" /> <Spinner android:id="@+id/dates" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_below="@id/name" android:layout_alignparentleft="true" android:layout_toleftof="@+id/times" /> <Spinner android:id="@id/times" android:layout_width="96dp" android:layout_height="wrap_content" android:layout_below="@id/name" android:layout_alignparentright="true" /> <Button android:layout_width="96dp" android:layout_height="wrap_content" android:layout_below="@id/times" android:layout_alignparentright="true" android:text="@string/done" /> </RelativeLayout>

Layout - List Exibe uma lista de itens de rolagem. Os itens da lista são automaticamente inserido na lista usando um adaptador que puxa conteúdo de uma fonte, como uma consulta de matriz ou banco de dados e converte cada item resultar em uma visão que é colocado na lista.

Layout - Grid Exibe itens em uma grade bidimensional, de rolagem. Os itens de grade são inseridas automaticamente ao layout usando um ListAdapter.

Layout Grid - Exemplo 1) Iniciar um novo projeto chamado HelloGridView. 2) Encontre algumas fotos que você gostaria de usar, ou baixe as imagens do professor. Salve os arquivos de imagem para o diretório do projeto res / drawable.

Layout Grid - Exemplo res/layout/main.xml <?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridview" android:layout_width="match_parent" android:layout_height="match_parent" android:columnwidth="90dp" android:numcolumns="auto_fit" android:verticalspacing="10dp" android:horizontalspacing="10dp" android:stretchmode="columnwidth" android:gravity="center" />

Layout Grid - Exemplo HelloGridView.java public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); GridView gridview = (GridView) findviewbyid(r.id.gridview); gridview.setadapter(new ImageAdapter(this)); } gridview.setonitemclicklistener(new OnItemClickListener() { public void onitemclick(adapterview<?> parent, View v, int position, long id) { Toast.makeText(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show(); } });

Layout Grid - Exemplo Após o layout main.xml estar definido para a exibição de conteúdo, o GridView é capturado a partir do layout com findviewbyid (int). O método setadapter(), em seguida, define um adaptador personalizado (ImageAdapter) como a fonte de todos os itens a serem exibidos na grade. O ImageAdapter é criado no passo seguinte. Para fazer alguma coisa quando um item na grade é clicado, o método setonitemclicklistener() é passado um novo AdapterView.OnItemClickListener. Esta instância anônimo define o método onitemclick() callback para mostrar um brinde que exibe a posição de índice (baseado em zero) do item selecionado (em um cenário do mundo real, a posição poderia ser usado para obter a imagem de tamanho completo para alguma outra tarefa ).

Layout Grid - Exemplo public class ImageAdapter extends BaseAdapter { private Context mcontext; public ImageAdapter(Context c) { mcontext = c; } public int getcount() { return mthumbids.length; } public Object getitem(int position) { return null; } public long getitemid(int position) { return 0; }

Layout Grid - Exemplo // create a new ImageView for each item referenced by the Adapter public View getview(int position, View convertview, ViewGroup parent) { ImageView imageview; if (convertview == null) { // if it's not recycled, initialize some attributes imageview = new ImageView(mContext); imageview.setlayoutparams(new GridView.LayoutParams(85, 85)); imageview.setscaletype(imageview.scaletype.center_crop); imageview.setpadding(8, 8, 8, 8); } else { imageview = (ImageView) convertview; } } imageview.setimageresource(mthumbids[position]); return imageview; } // references to our images private Integer[] mthumbids = { R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7, R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7, R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7 };

Layout Grid - Exemplo Tente executar o exemplo. Dica, o Android studio pode ser o seu melhor amigo (Avisos, resolução automática etc.)

Widgets

Widgets <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="yes" android:id="@+id/radiobutton0" android:checked="false" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="no" android:id="@+id/radiobutton1" android:checked="false" /> O que será a saída?

Widgets <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_toendof="@+id/textview" android:layout_torightof="@+id/textview" android:id="@+id/lay_foo"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="yes" android:id="@+id/radiobutton0" android:checked="false" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="no" android:id="@+id/radiobutton1" android:checked="false" android:layout_gravity="left center_vertical" /> E agora?

Widgets

Containers

Widgets <RadioGroup android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_horizontal top" android:orientation="horizontal" android:id="@+id/rg_decide"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="yes" android:id="@+id/radiobutton0" android:checked="false" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="no" android:id="@+id/radiobutton1" android:checked="false" /> </RadioGroup>

Date & Time

Date & Time <TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textclock" android:layout_gravity="center_horizontal" /> <CalendarView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/calendarview" android:datetextappearance="#7a5b5b" />

Boas práticas Uma maneira de proporcionar o acesso a toda a gama de telas de um aplicativo é expor uma navegação hierárquica. Por exemplo, a navegação descendente, permite aos usuários descer uma hierarquia de tela para uma tela descendente. Neste mesmo conceito, a navegação lateral, permite aos usuários acessar telas irmãs.

Boas práticas - Navegação descendente e lateral. Existem dois tipos de telas de irmãs: relacionadas a coleção, e relacionadas a seção. Telas relacionadas a coleção representam itens individuais na coleção representada por um pai....

Boas práticas - Navegação descendente e lateral. Existem dois tipos de telas de irmãs: relacionadas a coleção, e relacionadas a seção.... Telas relacionadas a Seção representam diferentes seções de informações sobre um pai. Por exemplo, uma seção pode mostrar informações textuais sobre um objeto enquanto outro pode fornecer um mapa da localização geográfica do objeto. O número de telas relacionadas com a seção para um dado pai é geralmente pequena.

Botões, tabs, Horizontal Paging, etc.

Grids, listas, etc.

Tarefa...Ver documento descrevendo a tarefa.