Material design - AndroidosDay 2015
Transcript of Material design - AndroidosDay 2015
Material Design
Ricardo Lecheta - http://androidosday.com
Material Design
Ricardo Lecheta - http://androidosday.com
Material Design
Ricardo Lecheta - http://androidosday.com
● Temas
RecyclerView e CardView
Ricardo Lecheta - http://androidosday.com
RecyclerView - animações
Ricardo Lecheta - http://androidosday.com
Google Wear e Cards
Ricardo Lecheta - http://androidosday.com
CardView
Ricardo Lecheta - http://androidosday.com
Material Design - Cores
Ricardo Lecheta - http://androidosday.com
● Cores
Paleta de Cores
Ricardo Lecheta - http://androidosday.com
● http://www.google.com/design/spec/style/color.html
Tema Material
Tema Material
● /res/values/styles.xml
Ricardo Lecheta - http://androidosday.com
Tema Material
● /res/values/colors.xml
Ricardo Lecheta - http://androidosday.com
Tema Material
● Resultado:
Ricardo Lecheta - http://androidosday.com
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
Material Design
Ricardo Lecheta - http://androidosday.com
● Floating Toolbar
Material Design
Ricardo Lecheta - http://androidosday.com
● Toolbar
Material Design
Ricardo Lecheta - http://androidosday.com
● Toolbar
Toolbar vs Action Bar
● Como utilizar a Toolbar?
● Remova a Action Bar com o tema NoActionBar
Ricardo Lecheta - http://androidosday.com
Toolbar vs Action Bar
● Arquivo de layout para Toolbar:
– build.gradle: com.android.support:appcompat-v7:22+
Ricardo Lecheta - http://androidosday.com
Toolbar vs Action Bar
● Faz include da Toolbar no Layout (como uma view)
Ricardo Lecheta - http://androidosday.com
Toolbar vs Action Bar
● Na activity: setSupportActionBar(toolbar)
Ricardo Lecheta - http://androidosday.com
Toolbar vs Action Bar
● Resultado:
● Mesmo de antes
Ricardo Lecheta - http://androidosday.com
Toolbar
Navigation Drawer
● Métricas e espaçamentos
Ricardo Lecheta - http://androidosday.com
Navigation Drawer
● Métricas e espaçamentos
Ricardo Lecheta - http://androidosday.com
Navigation Drawer
● Usar a Toolbar
● Menu Lateral
Ricardo Lecheta - http://androidosday.com
Navigation Drawer
● Objetivo:
● System bar translúcida
● Menu deve abrir por cima da action bar
Ricardo Lecheta - http://androidosday.com
Navigation Drawer
● /res/values/styles.xml
Ricardo Lecheta - http://androidosday.com
Navigation Drawer
● /res/values-v21/styles.xml
Ricardo Lecheta - http://androidosday.com
Navigation Drawer
● Problema:
● System bar translúcida
● Layout foi desenhado sobre a tela.
Ricardo Lecheta - http://androidosday.com
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
Navigation Drawer
● Resultado com
● fitsSystemWindows="true"
Ricardo Lecheta - http://androidosday.com
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
Navigation Drawer
● ScrimInsetsFrameLayout
Ricardo Lecheta - http://androidosday.com
Navigation Drawer
● Resultado com:
– ScrimInsetsFrameLayout
Ricardo Lecheta - http://androidosday.com
Navigation Drawer
● Tapa final no visual:
● Adicione o header,
● Espaçamentos
● Métricas do Material Design
Ricardo Lecheta - http://androidosday.com
Navigation Drawer
● Demo
Ricardo Lecheta - http://androidosday.com
Elevação
Ricardo Lecheta - http://androidosday.com
Elevação
Ricardo Lecheta - http://androidosday.com
● Elementos não podem ocupar o mesmo lugar
Elevação
Ricardo Lecheta - http://androidosday.com
● Elevação
Touch Feedback
Ricardo Lecheta - http://androidosday.com
● User Input – Surface Reaction
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
Efeito Ripple
● Cor: colorControlHighlight
Ricardo Lecheta - http://androidosday.com
Touch Feedback
Ricardo Lecheta - http://androidosday.com
● Efeito “ripple” customizado:
– /res/drawable/ripple.xml
Touch Feedback
Ricardo Lecheta - http://androidosday.com
● “ripple”
Floating Action Button
Ricardo Lecheta - http://androidosday.com
● Efeito “ripple” customizado para criar um FAB:
– /res/drawable/fab_oval.xml
Floating Action Button
Ricardo Lecheta - http://androidosday.com
● Efeito “ripple” customizado para criar um FAB:
– /res/drawable/fab_oval.xml
Floating Action Button
Ricardo Lecheta - http://androidosday.com
● Efeito “ripple” customizado para criar um FAB:
– /res/drawable/fab_oval.xml
Animate View State Changes
Ricardo Lecheta - http://androidosday.com
● User Input – Material Response
Animate View State Changes
Ricardo Lecheta - http://androidosday.com
● /res/drawable/raise.xml
Animate View State Changes
Ricardo Lecheta - http://androidosday.com
● /res/layout/adapter_carro.xml
Animate View State Changes
Ricardo Lecheta - http://androidosday.com
● Fonte: app Google I/O 2014
● https://github.com/google/iosched
Material Design
Ricardo Lecheta - http://androidosday.com
● User Input – Radial Reaction
Material Design
Ricardo Lecheta - http://androidosday.com
● Activity Transitions
Material Design
Ricardo Lecheta - http://androidosday.com
● Activity Transitions
Material Design
Ricardo Lecheta - http://androidosday.com
● Activity Transitions
Material Design
Ricardo Lecheta - http://androidosday.com
● Activity Transitions
Material Design
Ricardo Lecheta - http://androidosday.com
● Views compartilhadas: No layout de ambas as activities
Material Design
Ricardo Lecheta - http://androidosday.com
● ViewCompat para manter a compatibilidade.
Activity Transitions
Ricardo Lecheta - http://androidosday.com
Activity Transitions
Ricardo Lecheta - http://androidosday.com
● Ligar pelo código
Activity Transitions
Ricardo Lecheta - http://androidosday.com
● Ou configurando o tema
Turbine a velocidade do Emulador
Ricardo Lecheta - http://androidosday.com
● Dica: Intel® Hardware Accelerated Execution Manager (Intel® HAXM)
Reveal Effect
Ricardo Lecheta - http://androidosday.com
● Animação contínua
● Para mostrar ou esconder uma view
Floating Action Button (FAB)
● Representa a ação primária do aplicativo / tela
Ricardo Lecheta - http://androidosday.com
Floating Action Button
● Nem todas as telas precisam de um FAB
Ricardo Lecheta - http://androidosday.com
Floating Action Button
● O FAB precisa ser uma ação positiva
Ricardo Lecheta - http://androidosday.com
Floating Action Button
● O FAB não “deve” ser uma ação negativa
Ricardo Lecheta - http://androidosday.com
Floating Action Button
● Não encha a tela de fabs
Ricardo Lecheta - http://androidosday.com
Floating Action Button
● Não encha a tela de fabs
Ricardo Lecheta - http://androidosday.com
Floating Action Button
● Animações:
Ricardo Lecheta - http://androidosday.com
● Lib no github:
● https://github.com/makovkastar/FloatingActionButton
Floating Action Button
Ricardo Lecheta - http://androidosday.com
Floating Action Button
Ricardo Lecheta - http://androidosday.com
Floating Action Button
● Monitorar eventos de rolagem:
● Show / Hide com animação
Ricardo Lecheta - http://androidosday.com
Floating Action Button
● Lib no github:
● https://github.com/makovkastar/FloatingActionButton
Ricardo Lecheta - http://androidosday.com
Floating Action Button
● Lib no github:
● https://github.com/futuresimple/android-floating-action-button
Ricardo Lecheta - http://androidosday.com
Toolbar e Scroll
● Lib no github:
● https://github.com/ksoichiro/Android-ObservableScrollView
Ricardo Lecheta - http://androidosday.com
Toolbar e Scroll
● ObservableRecyclerView:
Ricardo Lecheta - http://androidosday.com
Toolbar e Scroll
● ObservableRecyclerView:
Ricardo Lecheta - http://androidosday.com
Toolbar e Scroll
Ricardo Lecheta - http://androidosday.com
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
Obrigado
Ricardo Lecheta - http://androidosday.com
• https://plus.google.com/+RicardoLecheta
• https://www.facebook.com/ricardolecheta
• http://twitter.com/rlecheta