Material design - AndroidosDay 2015

81
Material Design Ricardo Lecheta - http://androidosday.com

Transcript of Material design - AndroidosDay 2015

Page 1: Material design - AndroidosDay 2015

Material Design

Ricardo Lecheta - http://androidosday.com

Page 2: Material design - AndroidosDay 2015

Material Design

Ricardo Lecheta - http://androidosday.com

Page 3: Material design - AndroidosDay 2015

Material Design

Ricardo Lecheta - http://androidosday.com

● Temas

Page 4: Material design - AndroidosDay 2015

RecyclerView e CardView

Ricardo Lecheta - http://androidosday.com

Page 5: Material design - AndroidosDay 2015

RecyclerView - animações

Ricardo Lecheta - http://androidosday.com

Page 6: Material design - AndroidosDay 2015

Google Wear e Cards

Ricardo Lecheta - http://androidosday.com

Page 7: Material design - AndroidosDay 2015

CardView

Ricardo Lecheta - http://androidosday.com

Page 8: Material design - AndroidosDay 2015

Material Design - Cores

Ricardo Lecheta - http://androidosday.com

● Cores

Page 9: Material design - AndroidosDay 2015

Paleta de Cores

Ricardo Lecheta - http://androidosday.com

● http://www.google.com/design/spec/style/color.html

Page 10: Material design - AndroidosDay 2015

Tema Material

Page 11: Material design - AndroidosDay 2015

Tema Material

● /res/values/styles.xml

Ricardo Lecheta - http://androidosday.com

Page 12: Material design - AndroidosDay 2015

Tema Material

● /res/values/colors.xml

Ricardo Lecheta - http://androidosday.com

Page 13: Material design - AndroidosDay 2015

Tema Material

● Resultado:

Ricardo Lecheta - http://androidosday.com

Page 14: Material design - AndroidosDay 2015

Material Design

Ricardo Lecheta - http://androidosday.com

● Toolbar

– Conceito genérico da Action Bar

– É uma view como outra qualquer

– Podemos animá-la: mover, redimensionar, etc

Page 15: Material design - AndroidosDay 2015

Material Design

Ricardo Lecheta - http://androidosday.com

● Floating Toolbar

Page 16: Material design - AndroidosDay 2015

Material Design

Ricardo Lecheta - http://androidosday.com

● Toolbar

Page 17: Material design - AndroidosDay 2015

Material Design

Ricardo Lecheta - http://androidosday.com

● Toolbar

Page 18: Material design - AndroidosDay 2015

Toolbar vs Action Bar

● Como utilizar a Toolbar?

● Remova a Action Bar com o tema NoActionBar

Ricardo Lecheta - http://androidosday.com

Page 19: Material design - AndroidosDay 2015

Toolbar vs Action Bar

● Arquivo de layout para Toolbar:

– build.gradle: com.android.support:appcompat-v7:22+

Ricardo Lecheta - http://androidosday.com

Page 20: Material design - AndroidosDay 2015

Toolbar vs Action Bar

● Faz include da Toolbar no Layout (como uma view)

Ricardo Lecheta - http://androidosday.com

Page 21: Material design - AndroidosDay 2015

Toolbar vs Action Bar

● Na activity: setSupportActionBar(toolbar)

Ricardo Lecheta - http://androidosday.com

Page 22: Material design - AndroidosDay 2015

Toolbar vs Action Bar

● Resultado:

● Mesmo de antes

Ricardo Lecheta - http://androidosday.com

Toolbar

Page 23: Material design - AndroidosDay 2015

Navigation Drawer

● Métricas e espaçamentos

Ricardo Lecheta - http://androidosday.com

Page 24: Material design - AndroidosDay 2015

Navigation Drawer

● Métricas e espaçamentos

Ricardo Lecheta - http://androidosday.com

Page 25: Material design - AndroidosDay 2015

Navigation Drawer

● Usar a Toolbar

● Menu Lateral

Ricardo Lecheta - http://androidosday.com

Page 26: Material design - AndroidosDay 2015

Navigation Drawer

● Objetivo:

● System bar translúcida

● Menu deve abrir por cima da action bar

Ricardo Lecheta - http://androidosday.com

Page 27: Material design - AndroidosDay 2015

Navigation Drawer

● /res/values/styles.xml

Ricardo Lecheta - http://androidosday.com

Page 28: Material design - AndroidosDay 2015

Navigation Drawer

● /res/values-v21/styles.xml

Ricardo Lecheta - http://androidosday.com

Page 29: Material design - AndroidosDay 2015

Navigation Drawer

● Problema:

● System bar translúcida

● Layout foi desenhado sobre a tela.

Ricardo Lecheta - http://androidosday.com

Page 30: Material design - AndroidosDay 2015

Navigation Drawer

● Problema:

– O layout está ocupando a tela inteira, pois a system bar está translúcida

● Solução:

– Utilize o fitsSystemWindows="true” na raiz do layout

Ricardo Lecheta - http://androidosday.com

Page 31: Material design - AndroidosDay 2015

Navigation Drawer

● Resultado com

● fitsSystemWindows="true"

Ricardo Lecheta - http://androidosday.com

Page 32: Material design - AndroidosDay 2015

Navigation Drawer

● Problema:

– Voltamos ao ponto de partida.

– Precisamos desenhar o menu sobre todo o layout.

● Solução:

– Utilize o ScrimInsetsFrameLayout– Ele deve ser o layout pai no Menu Nav Drawer

Ricardo Lecheta - http://androidosday.com

Page 33: Material design - AndroidosDay 2015

Navigation Drawer

● ScrimInsetsFrameLayout

Ricardo Lecheta - http://androidosday.com

Page 34: Material design - AndroidosDay 2015

Navigation Drawer

● Resultado com:

– ScrimInsetsFrameLayout

Ricardo Lecheta - http://androidosday.com

Page 35: Material design - AndroidosDay 2015

Navigation Drawer

● Tapa final no visual:

● Adicione o header,

● Espaçamentos

● Métricas do Material Design

Ricardo Lecheta - http://androidosday.com

Page 36: Material design - AndroidosDay 2015

Navigation Drawer

● Demo

Ricardo Lecheta - http://androidosday.com

Page 37: Material design - AndroidosDay 2015

Elevação

Ricardo Lecheta - http://androidosday.com

Page 38: Material design - AndroidosDay 2015

Elevação

Ricardo Lecheta - http://androidosday.com

● Elementos não podem ocupar o mesmo lugar

Page 39: Material design - AndroidosDay 2015

Elevação

Ricardo Lecheta - http://androidosday.com

● Elevação

Page 40: Material design - AndroidosDay 2015

Touch Feedback

Ricardo Lecheta - http://androidosday.com

● User Input – Surface Reaction

Page 41: Material design - AndroidosDay 2015

Touch Feedback

Ricardo Lecheta - http://androidosday.com

● Efeito “ripple”

● Já existe nos componentes nativos, ex: Button

● Pode ser adicionado nas views.

– ?android:attr/selectableItemBackground

– ?android:attr/selectableItemBackgroundBorderless

Page 42: Material design - AndroidosDay 2015

Efeito Ripple

● Cor: colorControlHighlight

Ricardo Lecheta - http://androidosday.com

Page 43: Material design - AndroidosDay 2015

Touch Feedback

Ricardo Lecheta - http://androidosday.com

● Efeito “ripple” customizado:

– /res/drawable/ripple.xml

Page 44: Material design - AndroidosDay 2015

Touch Feedback

Ricardo Lecheta - http://androidosday.com

● “ripple”

Page 45: Material design - AndroidosDay 2015

Floating Action Button

Ricardo Lecheta - http://androidosday.com

● Efeito “ripple” customizado para criar um FAB:

– /res/drawable/fab_oval.xml

Page 46: Material design - AndroidosDay 2015

Floating Action Button

Ricardo Lecheta - http://androidosday.com

● Efeito “ripple” customizado para criar um FAB:

– /res/drawable/fab_oval.xml

Page 47: Material design - AndroidosDay 2015

Floating Action Button

Ricardo Lecheta - http://androidosday.com

● Efeito “ripple” customizado para criar um FAB:

– /res/drawable/fab_oval.xml

Page 48: Material design - AndroidosDay 2015

Animate View State Changes

Ricardo Lecheta - http://androidosday.com

● User Input – Material Response

Page 49: Material design - AndroidosDay 2015

Animate View State Changes

Ricardo Lecheta - http://androidosday.com

● /res/drawable/raise.xml

Page 50: Material design - AndroidosDay 2015

Animate View State Changes

Ricardo Lecheta - http://androidosday.com

● /res/layout/adapter_carro.xml

Page 51: Material design - AndroidosDay 2015

Animate View State Changes

Ricardo Lecheta - http://androidosday.com

● Fonte: app Google I/O 2014

● https://github.com/google/iosched

Page 52: Material design - AndroidosDay 2015

Material Design

Ricardo Lecheta - http://androidosday.com

● User Input – Radial Reaction

Page 53: Material design - AndroidosDay 2015

Material Design

Ricardo Lecheta - http://androidosday.com

● Activity Transitions

Page 54: Material design - AndroidosDay 2015

Material Design

Ricardo Lecheta - http://androidosday.com

● Activity Transitions

Page 55: Material design - AndroidosDay 2015

Material Design

Ricardo Lecheta - http://androidosday.com

● Activity Transitions

Page 56: Material design - AndroidosDay 2015

Material Design

Ricardo Lecheta - http://androidosday.com

● Activity Transitions

Page 57: Material design - AndroidosDay 2015

Material Design

Ricardo Lecheta - http://androidosday.com

● Views compartilhadas: No layout de ambas as activities

Page 58: Material design - AndroidosDay 2015

Material Design

Ricardo Lecheta - http://androidosday.com

● ViewCompat para manter a compatibilidade.

Page 59: Material design - AndroidosDay 2015

Activity Transitions

Ricardo Lecheta - http://androidosday.com

Page 60: Material design - AndroidosDay 2015

Activity Transitions

Ricardo Lecheta - http://androidosday.com

● Ligar pelo código

Page 61: Material design - AndroidosDay 2015

Activity Transitions

Ricardo Lecheta - http://androidosday.com

● Ou configurando o tema

Page 62: Material design - AndroidosDay 2015

Turbine a velocidade do Emulador

Ricardo Lecheta - http://androidosday.com

● Dica: Intel® Hardware Accelerated Execution Manager (Intel® HAXM)

Page 63: Material design - AndroidosDay 2015

Reveal Effect

Ricardo Lecheta - http://androidosday.com

● Animação contínua

● Para mostrar ou esconder uma view

Page 64: Material design - AndroidosDay 2015

Floating Action Button (FAB)

● Representa a ação primária do aplicativo / tela

Ricardo Lecheta - http://androidosday.com

Page 65: Material design - AndroidosDay 2015

Floating Action Button

● Nem todas as telas precisam de um FAB

Ricardo Lecheta - http://androidosday.com

Page 66: Material design - AndroidosDay 2015

Floating Action Button

● O FAB precisa ser uma ação positiva

Ricardo Lecheta - http://androidosday.com

Page 67: Material design - AndroidosDay 2015

Floating Action Button

● O FAB não “deve” ser uma ação negativa

Ricardo Lecheta - http://androidosday.com

Page 68: Material design - AndroidosDay 2015

Floating Action Button

● Não encha a tela de fabs

Ricardo Lecheta - http://androidosday.com

Page 69: Material design - AndroidosDay 2015

Floating Action Button

● Não encha a tela de fabs

Ricardo Lecheta - http://androidosday.com

Page 70: Material design - AndroidosDay 2015

Floating Action Button

● Animações:

Ricardo Lecheta - http://androidosday.com

Page 71: Material design - AndroidosDay 2015

● Lib no github:

● https://github.com/makovkastar/FloatingActionButton

Floating Action Button

Ricardo Lecheta - http://androidosday.com

Page 72: Material design - AndroidosDay 2015

Floating Action Button

Ricardo Lecheta - http://androidosday.com

Page 73: Material design - AndroidosDay 2015

Floating Action Button

● Monitorar eventos de rolagem:

● Show / Hide com animação

Ricardo Lecheta - http://androidosday.com

Page 74: Material design - AndroidosDay 2015

Floating Action Button

● Lib no github:

● https://github.com/makovkastar/FloatingActionButton

Ricardo Lecheta - http://androidosday.com

Page 75: Material design - AndroidosDay 2015

Floating Action Button

● Lib no github:

● https://github.com/futuresimple/android-floating-action-button

Ricardo Lecheta - http://androidosday.com

Page 76: Material design - AndroidosDay 2015

Toolbar e Scroll

● Lib no github:

● https://github.com/ksoichiro/Android-ObservableScrollView

Ricardo Lecheta - http://androidosday.com

Page 77: Material design - AndroidosDay 2015

Toolbar e Scroll

● ObservableRecyclerView:

Ricardo Lecheta - http://androidosday.com

Page 78: Material design - AndroidosDay 2015

Toolbar e Scroll

● ObservableRecyclerView:

Ricardo Lecheta - http://androidosday.com

Page 79: Material design - AndroidosDay 2015

Toolbar e Scroll

Ricardo Lecheta - http://androidosday.com

Page 80: Material design - AndroidosDay 2015

Links

Ricardo Lecheta - http://androidosday.com

● Material Design on Android Checklist

● http://android-developers.blogspot.com.br/2014/10/material-design-on-android-checklist.html

Page 81: Material design - AndroidosDay 2015

Obrigado

Ricardo Lecheta - http://androidosday.com

• https://plus.google.com/+RicardoLecheta

• https://www.facebook.com/ricardolecheta

• http://twitter.com/rlecheta