SlideShare a Scribd company logo
1 of 111
PROGRAMACIÓN MULTIMEDIA
Y
DISPOSITIVOS MÓVILES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
COMENZANDO A
PROGRAMAR
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
MATERIAL DESIGN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
Presentado durante el Google
I/O 2014, y bajo la autoría del
chileno Matías Duarte.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
A partir de la versión 5.0 de
Android (API 21)
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
dependencies {
…
compile ‘com.android.support:design:22.2.0’
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
Google no la quiere aplicar
exclusivamente a dispositivos
móviles, sino que pretende
utilizar material design en todo
tipo de contenidos digitales.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
Es un concepto, una filosofía,
unas pautas enfocadas al
diseño utilizado en Android,
pero también en la web y en
cualquier plataforma.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
Está basado en objetos materiales.
Piezas colocadas en un espacio
(lugar) y con un tiempo
(movimiento) determinado.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
Es un diseño donde la
profundidad, las superficies, los
bordes, las sombras y los colores
juegan un papel principal.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
Aproximándose a la realidad,
guiándose por las leyes de la física,
animaciones lógicas, con objetos
superpuestos pero que no puedan
atravesarse unos a otros.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
CASILLAS BIEN ORDENADAS
COLORES E IMÁGENES LLAMATIVOS
TIPOGRAFÍAS CLARAS
LUCES Y SOMBRAS JERARQUIZADAS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
ELEMENTOS DE DISEÑO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
ELEMENTOS: LA SUPERFICIE Y LA LUZ
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
ELEMENTOS: COMBINACIONES DE COLOR
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
ELEMENTOS: COLORES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
Palette es una librería que permite
extraer colores de una imagen, no
usarse en el hilo principal
ELEMENTOS: PALETTE
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
ELEMENTOS: PALETTE
Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
titulo.setTextColor(palette.getLightVibrantColor(defaultTextColor));
autor.setTextColor(palette.getVibrantColor(defaultTextColor));
}
});
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
ELEMENTOS: PALETTE
dependencies {
…
compile ‘com.android.support:palette-v7:22.2.0’
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
ELEMENTOS: MOVIMIENTO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
ELEMENTOS: ELEVACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
ELEMENTOS: TRANSICIONES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
ELEMENTOS: TRANSICIONES
<android.support.v7.widget.CardView
android:stateListAnimator="@drawable/animacion”
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<set>
<objectAnimator android:propertyName="translationZ"
android:duration="@android:integer/config_shortAnimTime"
android:valueTo="10dp"
android:valueType="floatType"/>
</set>
</item>
<item android:state_pressed="false“ >
<set>
<objectAnimator android:propertyName="translationZ"
android:duration="100"
android:valueTo="2dp"
android:valueType="floatType"/>
</set>
</item>
</selector>
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
ELEMENTOS: ELEVACIÓN
<button
android:stateListAnimator=“@anim/fab_animfab”
android:transictionName=“fab”
...//…
Intent in = new Intent (Primera.this, Segunda.class);
ActivityOptions opciones = ActivityOptions.makeSceneTransitionAnimation(
Primera.this, Pair.create(fabButton, "fab"));
startActivity(in, opciones.toBundle());
...//…
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
ELEMENTOS: RIPPLES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NUEVAS LIBRERÍAS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
TABLAYOUT
ACTION BAR
FLOATING ACTION BUTTON
TOOLBAR
NUEVAS LIBRERÍAS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATORDRAWVER
RECYCLERVIEW
CARDVIEW
SNACKBAR
EDITTEXT/TEXTINPUTLAYOUT
NUEVAS LIBRERÍAS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
TEXTINPULAYOUT
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
TEXTINPUTLAYOUT
textColorHint
colorControlActivated
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
TEXTINPUTLAYOUT
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
TEXTINPUTLAYOUT
El foco en un campo de texto mueve el
hint hacia la parte superior, haciendo que
el usuario nunca pierda el contexto del
contenido que está escribiendo.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
TEXTINPUTLAYOUT
LABEL TEXT
INPUT TEXT
16
16
8
8
72
PADDING ABOVE LABEL TEXT
LABEL HEIGHT
PADDING BELOW INPUT TEXT
PADDING BETWEN TEXT
PADDING BELOW DIVIDER
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
TEXTINPUTLAYOUT
LABEL TEXT
INPUT TEXTROBOTO REGULAR 16P
ROBOTO REGULAR 12
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
TEXTINPUTLAYOUT: XML
<android.support.design.widget.TextInputLayout
app:counterEnabled="true"
app:counterMaxLength="30"
app:errorEnabled="true">
<EditText
..//..
</android.support.design.widget.TextInputLayout>
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
TEXTINPUTLAYOUT: JAVA
import android.support.design.widget.TextInputLayout;
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
TEXTINPUTLAYOUT: JAVA
import android.widget.EditText;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Patterns;
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
CARDVIEW
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
CARDVIEW
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
CARDVIEW
NIVELES EN PANTALLA
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
CARDVIEW
dependencies {
…
compile ‘com.android.support:cardview-v7:22.2.0’
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
CARDVIEW: XML
<android.support.V7.widget.CardView
card_view:cardCornerRadius="4dp"
card_view:cardElevation="4dp"
card_view:cardUseCompatPadding="true">
<Relativelayout
..//..
</android.support. V7.widget.CardView>
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
contentPadding
cardUseCompatPadding
cardPreventCornerOverlap
cardMaxElevation
cardElevation
cardCornerRadius
CARDVIEW: XML
cardBackgroundColor
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECYCLERVIEW
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW
Es una clase que hereda de ViewGroup
que permite mostrar grandes
colecciones o conjuntos de datos pero
solo se dedica a reciclar vistas, otros
componentes serán responsables de
acceder a los datos y mostrarlos.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW
RecyclerView necesita del método
setLayoutManager(LayoutManager
layout) para asignar un tipo de layout que
le indique cómo debe renderizar, dando
origen a un patrón por composición.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
StaggeredGridLayoutManager
RECICLERVIEW: TIPOS DE LAYOUTMANAGER
GridLayoutManager
LinearLayoutManager
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: TIPOS DE LAYOUTMANAGER
LinearLayoutManager
LinearLayoutManager linearLayoutManager = new
LinearLayoutManager( this,
LinearLayoutManager.VERTICAL, false);
LinearLayoutManager
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: TIPOS DE LAYOUTMANAGER
LinearLayoutManager – LISTAS HORIZONTALES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: TIPOS DE LAYOUTMANAGER
GridLayoutManager
GridLayoutManager gridLayoutManager = new
GridLayoutManager ( this, 2,
GridLayoutManager.VERTICAL, false);
GridLayoutManager
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: TIPOS DE LAYOUTMANAGER
GridLayoutManager - VISTAS RESPONSIVAS
final int columnas=
getResources().getInteger(R.integer. columnas);
GridLayoutManager gridLayoutManager = new
GridLayoutManager ( this, columnas,
GridLayoutManager.VERTICAL, false);
GridLayoutManager
<integer name=“columnas">1</integer>
<integer name=“columnas">2</integer>
VALUES
VALUES LARGOS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: TIPOS DE LAYOUTMANAGER
GridLayoutManager + SpanSizeLookup
Usando el metodo
setSpanSizeLookup(SpanSize
Lookup spanSizeLookup)
establecemos la cantidad de
spans que debe ocupar cada
elemento en el adaptador.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: TIPOS DE LAYOUTMANAGER
GridLayoutManager + SpanSizeLookup
gridLayoutManager.setSpanSizeLookup(new
GridLayoutManager.SpanSizeLookup()
@Override
public int getSpanSize(int position) {
int index = postion % 5;
switch(index){
case 0: return 1;
case 1: return 2;
case 2: return 1;
}
});
GridLayoutManager
SpanSizeLookup
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: TIPOS DE LAYOUTMANAGER
StaggeredGridLayoutManager
StaggeredGridLayoutManager staggeredGridLayoutManager
= new GridLayoutManager ( this, 2,
GridLayoutManager.VERTICAL, false);
staggeredGridLayoutManager.setGapStrategy(StaggeredGridL
ayoutManager.GAP_HANDLING_NONE);
StaggeredGridLayoutManager
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW
RecyclerView nos brinda un nuevo
componente de nombre Recycler una
clase encargada de gestionar si una vista
será (desechada o separada) scrapped or
detached para su reutilización.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW
LAYOUTMANAGER RECYCLER
ADAPTADOR
OBTIENE LA VISTA
RECICLA LA VISTA
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW
Si un vista es scrapped indica que continúa
enlazada con el RecyclerView pero se ha
marcado para su posible eliminación o
reutilización. Cuando es reutilizada es
considerada dirty y el adaptador es quien debe
volver a enlazarla antes de ser mostrada.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW
RECYLER POOL
SCRAP HEAP
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: SCRAP HEAP
Es donde podemos interactuar con las vistas que
no estás utilizando en el momento pero vas a
volver a utilizar de forma inmediata, se consigue
mediante el método detachAndScrapView(View
child, Recycler recycler)
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: RECYCLER POOL
Es donde encuentran las vistas que no
necesitamos más y utilizando el método
removeAndRecycleView(View child, Recycler
recycler) removemos las vistas.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: XML
<android.support.v7.widget.RecyclerView
android:id="@+id/reciclador"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="3dp"
android:scrollbars="vertical"
android:background="@color/colorDivider"/>
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: JAVA
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
DECLARA ELEMENTOS DE ARQUITECTURA
RECICLERVIEW: JAVA
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: JAVA
private RecyclerView recycler;
private RecyclerView.Adapter adapter;
private RecyclerView.LayoutManager lManager;
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
OBTIENE Y CONFIGURA EL RECYCLER
RECICLERVIEW: JAVA
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: JAVA
recycler = (RecyclerView) findViewById(R.id.reciclador);
recycler.setHasFixedSize(true);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
UTILIZA EL ADMINISTRADOR PARA LINEARLAYOUT
RECICLERVIEW: JAVA
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: JAVA
lManager = new LinearLayoutManager(this);
recycler.setLayoutManager(lManager);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
CREAMOS UN NUEVO ADAPTADOR
RECICLERVIEW: JAVA
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: JAVA
adapter = new Adaptador(datos);
recycler.setAdapter(adapter);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: ADAPTADOR.JAVA
public class Adaptador extends RecyclerView.Adapter<Adaptador.AnimeViewHolder> {
private List<Encapsulador> items;
public static class AnimeViewHolder extends RecyclerView.ViewHolder {
--- ITEMS---
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RECICLERVIEW: ADAPTADOR.JAVA
MÉTODOS
onBindViewHolder
onCreateViewHolder
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
SNACKBAR
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
SNACKBAR
Muestra feedback sobre alguna operación
realizada por el usuario, y es similar a un
toast ya que aparece en pantalla por un
corto periodo de tiempo y después
desaparece automáticamente.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
SNACKBAR
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
APARECE DESDE EL INFERIOR DE LA PANTALLA
SOLO PUEDE MOSTRARSE UN AL MISMO TIEMPO
DEBE MOSTRAR MENSAJES CORTOS
PUEDE DESCARTARSE HACIA UN LATERAL
SNACKBAR
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
SNACKBAR
import android.support.design.widget.Snackbar;
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
CONTEXTO/VISTA
TEXTO
Snackbar.make()
DURACCIÓN
SNACKBAR: CONSTRUCCIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
SNACKBAR: CONSTRUCCIÓN
Snackbar.make(view, “TEXTO A MOSTRAR", Snackbar.LENGTH_LONG)
.setAction(“BOTON", new View.OnClickListener() {
@Override
public void onClick(View view) {
CÓDIGO RESPUESTA
}
})
.show();
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
SNACKBAR
<item name="colorAccent">@color/accentColor</item>
SNACKBAR: CONSTRUCCIÓN
ESTILOS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
SNACKBAR: CONSTRUCCIÓN
ESTILOS
Snackbar.make(view, “TEXTO A MOSTRAR", Snackbar.LENGTH_LONG)
.setActionTextColor(getResources().getColor(R.color.snackbar_action))
View snackBarView = snackbar.getView();
snackBarView.setBackgroundColor(getResources().getColor(R.color.snackbar_background));
TextView tv = (TextView) snackBarView.findViewById(android.support.design.R.id.snackbar_text);
tv.setTextColor(getResources().getColor(R.color.snackbar_message));
.setAction(“BOTON", new View.OnClickListener() {
@Override
public void onClick(View view) {
CÓDIGO RESPUESTA
}
})
.show();
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
SNACKBAR: CONSTRUCCIÓN
ESTILOS
<android.support.design.widget.CoordinatorLayout
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATORDRAWER
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER
Es un nuevo interfaz de usuario en forma de un
panel lateral que puede contener el menú
principal u otras opciones de navegación de la
App, y que permanece oculto por defecto.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: APERTURA
DESLIZAMIENTO DESDE EL BORDE IZQUIERDO
TOCANDO EL ICONO DE LA APLICACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
PRESIONANDO EL BOTÓN ATRÁS
TOCANDO EL CONTENIDO FUERA DEL NAVIGATION
NAVIGATION DRAWER: CIERRE
DESLIZAMIENTO HACIA EL BORDE IZQUIERDO
TOCANDO EL ICONO DE LA APLICACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: NAVEGACIÓN CRUZADA
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: NAVEGACIÓN PROFUNDA
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: NAVEGACIÓN EN ÁRBOL
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: ELEMENTOS
ELEMENTOS PLEGABLES
CONTADORES
ICONOS
TÍTULOS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: ELEMENTOS
TÍTULOS – ICONOS - CONTADORES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: ELEMENTOS
ELEMENTOS PLEGABLES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: ELEMENTOS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: ELEMENTOS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: XML
<android.support.v4.widget.DrawerLayout
<include layout="@layout/contenido" />
<android.support.design.widget.NavigationView
android:id="@+id/navigation“
app:headerLayout="@layout/cabecera"
app:menu="@menu/menu_navegacion" />
</android.support.v4.widget.DrawerLayout>
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: DRAWERLAYOUT
Un DrawerLayout es un contenedor especial de
la librería de soporte, que alberga dos tipos de
contenido, el contenido principal y el
contenido para el Navigation Drawer.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: JAVA
SE REFERENCIA EL NAVIGATION DRAWER
SE DECLARA EL NAVIGATION DRAWER
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: JAVA
private DrawerLayout drawerLayout;
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: JAVA
SE CREA UN ESCUCHADOR AL NAVIGATION DRAWER
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: JAVA
navigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
menuItem.setChecked(true);
..//..
return true;
}
}
);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: CIRCLEIMAGEVIEW
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
dependencies {
…
compile 'de.hdodenhof:circleimageview:1.3.0'
}
NAVIGATION DRAWER: CIRCLEIMAGEVIEW
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
NAVIGATION DRAWER: CIRCLEIMAGEVIEW
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/circle_image"
android:layout_width=“20dp"
android:layout_height=“20dp"
android:layout_marginBottom="16dp"
android:scaleType="centerCrop"
android:src="@drawable/imagen"
app:border_color="@android:color/white"
app:border_width="1dp" />
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
RecyclerView Y CustomView
RecyclerView.ItemAnimator
RecyclerView.ItemDecoration
ACTIVIDAD DE INVESTIGACIÓN
ESTILO DE LAS ETIQUETAS EN TEXTINPULAYOUT
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
MATERIAL DESIGN
© J.D.CABRERA
PROGRAMACIÓN MULTIMEDIA
Y
DISPOSITIVOS MÓVILES
DISPOSITIVOS MÓVILES: MATERIAL DESIGN

More Related Content

Viewers also liked

Material design for android
Material design for androidMaterial design for android
Material design for androidVmoksha Admin
 
Material Design - Høgskolen Ringerike 2017
Material Design - Høgskolen Ringerike 2017Material Design - Høgskolen Ringerike 2017
Material Design - Høgskolen Ringerike 2017Konstantin Loginov
 
Reading and Applying Scale
Reading and Applying ScaleReading and Applying Scale
Reading and Applying Scalemmartin33
 
Mady Johnson - INTERIOR DESIGN PORTFOLIO
Mady Johnson - INTERIOR DESIGN PORTFOLIOMady Johnson - INTERIOR DESIGN PORTFOLIO
Mady Johnson - INTERIOR DESIGN PORTFOLIOMadyson Johnson
 
2 point perspective lesson
2 point perspective lesson2 point perspective lesson
2 point perspective lessontnicholem11
 
Drawing for Interior Design Part 2
Drawing for Interior Design   Part 2Drawing for Interior Design   Part 2
Drawing for Interior Design Part 2Melissa Betancourt
 
Interior architect drawing
Interior architect drawingInterior architect drawing
Interior architect drawingShermaineojm
 
Study Guide Test 2 (Visual Elements and Design Principles)
Study Guide Test 2 (Visual Elements and Design Principles)Study Guide Test 2 (Visual Elements and Design Principles)
Study Guide Test 2 (Visual Elements and Design Principles)Jacques de Beaufort
 
La interior design course
La interior design courseLa interior design course
La interior design courseCusen Systems
 
Perspective
PerspectivePerspective
Perspectivej Nourry
 
INTERIOR DESIGN VISUAL PRESENTATION
INTERIOR DESIGN VISUAL PRESENTATIONINTERIOR DESIGN VISUAL PRESENTATION
INTERIOR DESIGN VISUAL PRESENTATIONShabnam Golkarian
 
Drawing for interior design part 3
Drawing for interior design   part 3Drawing for interior design   part 3
Drawing for interior design part 3Melissa Betancourt
 
Interior Architecture Drawing
Interior Architecture DrawingInterior Architecture Drawing
Interior Architecture Drawinglucaschinsheng
 

Viewers also liked (20)

Material design for android
Material design for androidMaterial design for android
Material design for android
 
DISPOSITIVOS MÓVILES: MENÚS Y SUBMMENÚS
DISPOSITIVOS MÓVILES: MENÚS Y SUBMMENÚSDISPOSITIVOS MÓVILES: MENÚS Y SUBMMENÚS
DISPOSITIVOS MÓVILES: MENÚS Y SUBMMENÚS
 
DISPOSITIVOS MÓVILES: LISTVIEW
DISPOSITIVOS MÓVILES: LISTVIEWDISPOSITIVOS MÓVILES: LISTVIEW
DISPOSITIVOS MÓVILES: LISTVIEW
 
Material Design - Høgskolen Ringerike 2017
Material Design - Høgskolen Ringerike 2017Material Design - Høgskolen Ringerike 2017
Material Design - Høgskolen Ringerike 2017
 
Reading and Applying Scale
Reading and Applying ScaleReading and Applying Scale
Reading and Applying Scale
 
Mady Johnson - INTERIOR DESIGN PORTFOLIO
Mady Johnson - INTERIOR DESIGN PORTFOLIOMady Johnson - INTERIOR DESIGN PORTFOLIO
Mady Johnson - INTERIOR DESIGN PORTFOLIO
 
Drawing for interior Design
Drawing for interior DesignDrawing for interior Design
Drawing for interior Design
 
Retreat interiors presentation
Retreat interiors  presentationRetreat interiors  presentation
Retreat interiors presentation
 
Sketching as a tool
Sketching as a toolSketching as a tool
Sketching as a tool
 
Space
SpaceSpace
Space
 
2 point perspective lesson
2 point perspective lesson2 point perspective lesson
2 point perspective lesson
 
Drawing for Interior Design Part 2
Drawing for Interior Design   Part 2Drawing for Interior Design   Part 2
Drawing for Interior Design Part 2
 
Interior architect drawing
Interior architect drawingInterior architect drawing
Interior architect drawing
 
Light and Design - Atelier Oï
Light and Design - Atelier OïLight and Design - Atelier Oï
Light and Design - Atelier Oï
 
Study Guide Test 2 (Visual Elements and Design Principles)
Study Guide Test 2 (Visual Elements and Design Principles)Study Guide Test 2 (Visual Elements and Design Principles)
Study Guide Test 2 (Visual Elements and Design Principles)
 
La interior design course
La interior design courseLa interior design course
La interior design course
 
Perspective
PerspectivePerspective
Perspective
 
INTERIOR DESIGN VISUAL PRESENTATION
INTERIOR DESIGN VISUAL PRESENTATIONINTERIOR DESIGN VISUAL PRESENTATION
INTERIOR DESIGN VISUAL PRESENTATION
 
Drawing for interior design part 3
Drawing for interior design   part 3Drawing for interior design   part 3
Drawing for interior design part 3
 
Interior Architecture Drawing
Interior Architecture DrawingInterior Architecture Drawing
Interior Architecture Drawing
 

Similar to DISPOSITIVOS MÓVILES: MATERIAL DESIGN

PROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENESPROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENESJacinto Cabrera Rodríguez
 
ESTRUCTURA DE UN PROYECTO EN ANDROID STUDIO 2.2
ESTRUCTURA DE UN PROYECTO EN ANDROID STUDIO 2.2ESTRUCTURA DE UN PROYECTO EN ANDROID STUDIO 2.2
ESTRUCTURA DE UN PROYECTO EN ANDROID STUDIO 2.2Jacinto Cabrera Rodríguez
 
DISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONES
DISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONESDISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONES
DISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONESJacinto Cabrera Rodríguez
 
ENTORNOS DE DESARROLLO: ANDROID STUDIO - ESTRUCTURA
ENTORNOS DE DESARROLLO: ANDROID STUDIO - ESTRUCTURA ENTORNOS DE DESARROLLO: ANDROID STUDIO - ESTRUCTURA
ENTORNOS DE DESARROLLO: ANDROID STUDIO - ESTRUCTURA Jacinto Cabrera Rodríguez
 
DISPOSITIVOS MÓVILES: PRESENTACIÓN DEL MÓDULO
DISPOSITIVOS MÓVILES: PRESENTACIÓN DEL MÓDULODISPOSITIVOS MÓVILES: PRESENTACIÓN DEL MÓDULO
DISPOSITIVOS MÓVILES: PRESENTACIÓN DEL MÓDULOJacinto Cabrera Rodríguez
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - MEDIASTORE
PROGRAMACIÓN ANDROID: MULTIMEDIA - MEDIASTOREPROGRAMACIÓN ANDROID: MULTIMEDIA - MEDIASTORE
PROGRAMACIÓN ANDROID: MULTIMEDIA - MEDIASTOREJacinto Cabrera Rodríguez
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - LOS GRÁFICOS
PROGRAMACIÓN ANDROID: MULTIMEDIA - LOS GRÁFICOSPROGRAMACIÓN ANDROID: MULTIMEDIA - LOS GRÁFICOS
PROGRAMACIÓN ANDROID: MULTIMEDIA - LOS GRÁFICOSJacinto Cabrera Rodríguez
 

Similar to DISPOSITIVOS MÓVILES: MATERIAL DESIGN (20)

DISPOSITIVOS MÓVILES: MATERIAL DESIGN II
DISPOSITIVOS MÓVILES: MATERIAL DESIGN IIDISPOSITIVOS MÓVILES: MATERIAL DESIGN II
DISPOSITIVOS MÓVILES: MATERIAL DESIGN II
 
ESTRUCTURA DE UN PROYECTO EN ANDROID STUDIO
ESTRUCTURA DE UN PROYECTO EN ANDROID STUDIOESTRUCTURA DE UN PROYECTO EN ANDROID STUDIO
ESTRUCTURA DE UN PROYECTO EN ANDROID STUDIO
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENESPROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENES
PROGRAMACIÓN ANDROID: MULTIMEDIA - LAS IMÁGENES
 
DISPOSITIVOS MÓVILES: CONTROLES BÁSICOS
DISPOSITIVOS MÓVILES: CONTROLES BÁSICOSDISPOSITIVOS MÓVILES: CONTROLES BÁSICOS
DISPOSITIVOS MÓVILES: CONTROLES BÁSICOS
 
ESTRUCTURA DE UN PROYECTO EN ANDROID STUDIO 2.2
ESTRUCTURA DE UN PROYECTO EN ANDROID STUDIO 2.2ESTRUCTURA DE UN PROYECTO EN ANDROID STUDIO 2.2
ESTRUCTURA DE UN PROYECTO EN ANDROID STUDIO 2.2
 
INSTALACIÓN ANDROID STUDIO 1
INSTALACIÓN ANDROID STUDIO 1INSTALACIÓN ANDROID STUDIO 1
INSTALACIÓN ANDROID STUDIO 1
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - EL VIDEO
PROGRAMACIÓN ANDROID: MULTIMEDIA - EL VIDEOPROGRAMACIÓN ANDROID: MULTIMEDIA - EL VIDEO
PROGRAMACIÓN ANDROID: MULTIMEDIA - EL VIDEO
 
DISPOSITIVOS MÓVILES: LAYOUTS
DISPOSITIVOS MÓVILES: LAYOUTSDISPOSITIVOS MÓVILES: LAYOUTS
DISPOSITIVOS MÓVILES: LAYOUTS
 
ANDROID: FUNDAMENTOS DE UNA APLICACIÓN
ANDROID: FUNDAMENTOS DE UNA APLICACIÓNANDROID: FUNDAMENTOS DE UNA APLICACIÓN
ANDROID: FUNDAMENTOS DE UNA APLICACIÓN
 
INSTALACIÓN ANDROID STUDIO 2
INSTALACIÓN ANDROID STUDIO 2INSTALACIÓN ANDROID STUDIO 2
INSTALACIÓN ANDROID STUDIO 2
 
ANDROID: CONFIGURAR ADB
ANDROID: CONFIGURAR ADBANDROID: CONFIGURAR ADB
ANDROID: CONFIGURAR ADB
 
DISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONES
DISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONESDISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONES
DISPOSITIVOS MÓVILES: INTENT Y COMUNICACIONES
 
ENTORNOS DE DESARROLLO: ANDROID STUDIO - ESTRUCTURA
ENTORNOS DE DESARROLLO: ANDROID STUDIO - ESTRUCTURA ENTORNOS DE DESARROLLO: ANDROID STUDIO - ESTRUCTURA
ENTORNOS DE DESARROLLO: ANDROID STUDIO - ESTRUCTURA
 
DISPOSITIVOS MÓVILES: PRESENTACIÓN DEL MÓDULO
DISPOSITIVOS MÓVILES: PRESENTACIÓN DEL MÓDULODISPOSITIVOS MÓVILES: PRESENTACIÓN DEL MÓDULO
DISPOSITIVOS MÓVILES: PRESENTACIÓN DEL MÓDULO
 
DISPOSITIVOS MÓVILES: CONTROLES DE TEXTO
DISPOSITIVOS MÓVILES: CONTROLES DE TEXTODISPOSITIVOS MÓVILES: CONTROLES DE TEXTO
DISPOSITIVOS MÓVILES: CONTROLES DE TEXTO
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - MEDIASTORE
PROGRAMACIÓN ANDROID: MULTIMEDIA - MEDIASTOREPROGRAMACIÓN ANDROID: MULTIMEDIA - MEDIASTORE
PROGRAMACIÓN ANDROID: MULTIMEDIA - MEDIASTORE
 
DISPOSITIVOS MÓVILES: GRIDVIEW - SPINNER
DISPOSITIVOS MÓVILES: GRIDVIEW - SPINNERDISPOSITIVOS MÓVILES: GRIDVIEW - SPINNER
DISPOSITIVOS MÓVILES: GRIDVIEW - SPINNER
 
DISPOSITIVOS MÓVILES: GIT - GITHUB
DISPOSITIVOS MÓVILES: GIT - GITHUBDISPOSITIVOS MÓVILES: GIT - GITHUB
DISPOSITIVOS MÓVILES: GIT - GITHUB
 
ANDROID; CONTROL DE VERSIONES
ANDROID; CONTROL DE VERSIONESANDROID; CONTROL DE VERSIONES
ANDROID; CONTROL DE VERSIONES
 
PROGRAMACIÓN ANDROID: MULTIMEDIA - LOS GRÁFICOS
PROGRAMACIÓN ANDROID: MULTIMEDIA - LOS GRÁFICOSPROGRAMACIÓN ANDROID: MULTIMEDIA - LOS GRÁFICOS
PROGRAMACIÓN ANDROID: MULTIMEDIA - LOS GRÁFICOS
 

More from Jacinto Cabrera Rodríguez

DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONESDISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONESJacinto Cabrera Rodríguez
 

More from Jacinto Cabrera Rodríguez (20)

REDES: DUCTUS Y CANALETAS II
REDES: DUCTUS Y CANALETAS IIREDES: DUCTUS Y CANALETAS II
REDES: DUCTUS Y CANALETAS II
 
OTRAS UNIDADES DE ALMACENAMIENTO
OTRAS UNIDADES DE ALMACENAMIENTOOTRAS UNIDADES DE ALMACENAMIENTO
OTRAS UNIDADES DE ALMACENAMIENTO
 
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONESDISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES
 
LAS FUENTES EN LA HISTORIA DEL ARTE
LAS FUENTES EN LA HISTORIA DEL ARTELAS FUENTES EN LA HISTORIA DEL ARTE
LAS FUENTES EN LA HISTORIA DEL ARTE
 
TOULOUSE LAUTREC
TOULOUSE LAUTRECTOULOUSE LAUTREC
TOULOUSE LAUTREC
 
PRÁCTICA MANEJO DE MEMORIA
PRÁCTICA MANEJO DE MEMORIAPRÁCTICA MANEJO DE MEMORIA
PRÁCTICA MANEJO DE MEMORIA
 
ZÓCALOS DE TARJETAS
ZÓCALOS DE TARJETASZÓCALOS DE TARJETAS
ZÓCALOS DE TARJETAS
 
ZÓCALOS DE PROCESADOR
ZÓCALOS DE PROCESADORZÓCALOS DE PROCESADOR
ZÓCALOS DE PROCESADOR
 
TIPOS DE MÓDULOS DE MEMORIA
TIPOS DE MÓDULOS DE MEMORIATIPOS DE MÓDULOS DE MEMORIA
TIPOS DE MÓDULOS DE MEMORIA
 
CARCASAS DE ORDENADOR
CARCASAS DE ORDENADORCARCASAS DE ORDENADOR
CARCASAS DE ORDENADOR
 
TIPOS DE TORNILLOS
TIPOS DE TORNILLOSTIPOS DE TORNILLOS
TIPOS DE TORNILLOS
 
PRACTICAS DE REDES: PRÁCTICA 26
PRACTICAS DE REDES: PRÁCTICA 26PRACTICAS DE REDES: PRÁCTICA 26
PRACTICAS DE REDES: PRÁCTICA 26
 
PRACTICAS DE REDES: PRÁCTICA 25
PRACTICAS DE REDES: PRÁCTICA 25PRACTICAS DE REDES: PRÁCTICA 25
PRACTICAS DE REDES: PRÁCTICA 25
 
PRACTICAS DE REDES: PRÁCTICA 24
PRACTICAS DE REDES: PRÁCTICA 24PRACTICAS DE REDES: PRÁCTICA 24
PRACTICAS DE REDES: PRÁCTICA 24
 
PRACTICAS DE REDES: PRÁCTICA 23
PRACTICAS DE REDES: PRÁCTICA 23PRACTICAS DE REDES: PRÁCTICA 23
PRACTICAS DE REDES: PRÁCTICA 23
 
REDES: TOMAS DE DATOS
REDES: TOMAS DE DATOSREDES: TOMAS DE DATOS
REDES: TOMAS DE DATOS
 
PRACTICAS DE REDES: PRÁCTICA 22
PRACTICAS DE REDES: PRÁCTICA 22PRACTICAS DE REDES: PRÁCTICA 22
PRACTICAS DE REDES: PRÁCTICA 22
 
PRACTICAS DE REDES: PRÁCTICA 21
PRACTICAS DE REDES: PRÁCTICA 21PRACTICAS DE REDES: PRÁCTICA 21
PRACTICAS DE REDES: PRÁCTICA 21
 
PRACTICAS DE REDES: PRÁCTICA 20
PRACTICAS DE REDES: PRÁCTICA 20PRACTICAS DE REDES: PRÁCTICA 20
PRACTICAS DE REDES: PRÁCTICA 20
 
PRACTICAS DE REDES: PRÁCTICA 19
PRACTICAS DE REDES: PRÁCTICA 19PRACTICAS DE REDES: PRÁCTICA 19
PRACTICAS DE REDES: PRÁCTICA 19
 

DISPOSITIVOS MÓVILES: MATERIAL DESIGN

  • 1.
  • 3.
  • 4. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA COMENZANDO A PROGRAMAR
  • 5. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA MATERIAL DESIGN
  • 6. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA Presentado durante el Google I/O 2014, y bajo la autoría del chileno Matías Duarte.
  • 7. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA A partir de la versión 5.0 de Android (API 21)
  • 8. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA dependencies { … compile ‘com.android.support:design:22.2.0’ }
  • 9. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA Google no la quiere aplicar exclusivamente a dispositivos móviles, sino que pretende utilizar material design en todo tipo de contenidos digitales.
  • 10. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA Es un concepto, una filosofía, unas pautas enfocadas al diseño utilizado en Android, pero también en la web y en cualquier plataforma.
  • 11. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA
  • 12. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA Está basado en objetos materiales. Piezas colocadas en un espacio (lugar) y con un tiempo (movimiento) determinado.
  • 13. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA Es un diseño donde la profundidad, las superficies, los bordes, las sombras y los colores juegan un papel principal.
  • 14. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA Aproximándose a la realidad, guiándose por las leyes de la física, animaciones lógicas, con objetos superpuestos pero que no puedan atravesarse unos a otros.
  • 15. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA CASILLAS BIEN ORDENADAS COLORES E IMÁGENES LLAMATIVOS TIPOGRAFÍAS CLARAS LUCES Y SOMBRAS JERARQUIZADAS
  • 16. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA
  • 17. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA ELEMENTOS DE DISEÑO
  • 18. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA ELEMENTOS: LA SUPERFICIE Y LA LUZ
  • 19. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA ELEMENTOS: COMBINACIONES DE COLOR
  • 20. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA ELEMENTOS: COLORES
  • 21. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA Palette es una librería que permite extraer colores de una imagen, no usarse en el hilo principal ELEMENTOS: PALETTE
  • 22. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA ELEMENTOS: PALETTE Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() { @Override public void onGenerated(Palette palette) { titulo.setTextColor(palette.getLightVibrantColor(defaultTextColor)); autor.setTextColor(palette.getVibrantColor(defaultTextColor)); } });
  • 23. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA ELEMENTOS: PALETTE dependencies { … compile ‘com.android.support:palette-v7:22.2.0’ }
  • 24. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA ELEMENTOS: MOVIMIENTO
  • 25. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA ELEMENTOS: ELEVACIÓN
  • 26. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA ELEMENTOS: TRANSICIONES
  • 27. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA ELEMENTOS: TRANSICIONES <android.support.v7.widget.CardView android:stateListAnimator="@drawable/animacion” <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <set> <objectAnimator android:propertyName="translationZ" android:duration="@android:integer/config_shortAnimTime" android:valueTo="10dp" android:valueType="floatType"/> </set> </item> <item android:state_pressed="false“ > <set> <objectAnimator android:propertyName="translationZ" android:duration="100" android:valueTo="2dp" android:valueType="floatType"/> </set> </item> </selector>
  • 28. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA ELEMENTOS: ELEVACIÓN <button android:stateListAnimator=“@anim/fab_animfab” android:transictionName=“fab” ...//… Intent in = new Intent (Primera.this, Segunda.class); ActivityOptions opciones = ActivityOptions.makeSceneTransitionAnimation( Primera.this, Pair.create(fabButton, "fab")); startActivity(in, opciones.toBundle()); ...//…
  • 29. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA ELEMENTOS: RIPPLES
  • 30. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NUEVAS LIBRERÍAS
  • 31. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA TABLAYOUT ACTION BAR FLOATING ACTION BUTTON TOOLBAR NUEVAS LIBRERÍAS
  • 32. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATORDRAWVER RECYCLERVIEW CARDVIEW SNACKBAR EDITTEXT/TEXTINPUTLAYOUT NUEVAS LIBRERÍAS
  • 33. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA TEXTINPULAYOUT
  • 34. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA TEXTINPUTLAYOUT textColorHint colorControlActivated
  • 35. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA TEXTINPUTLAYOUT
  • 36. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA TEXTINPUTLAYOUT El foco en un campo de texto mueve el hint hacia la parte superior, haciendo que el usuario nunca pierda el contexto del contenido que está escribiendo.
  • 37. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA TEXTINPUTLAYOUT LABEL TEXT INPUT TEXT 16 16 8 8 72 PADDING ABOVE LABEL TEXT LABEL HEIGHT PADDING BELOW INPUT TEXT PADDING BETWEN TEXT PADDING BELOW DIVIDER
  • 38. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA TEXTINPUTLAYOUT LABEL TEXT INPUT TEXTROBOTO REGULAR 16P ROBOTO REGULAR 12
  • 39. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA TEXTINPUTLAYOUT: XML <android.support.design.widget.TextInputLayout app:counterEnabled="true" app:counterMaxLength="30" app:errorEnabled="true"> <EditText ..//.. </android.support.design.widget.TextInputLayout>
  • 40. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA TEXTINPUTLAYOUT: JAVA import android.support.design.widget.TextInputLayout;
  • 41. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA TEXTINPUTLAYOUT: JAVA import android.widget.EditText; import android.text.Editable; import android.text.TextWatcher; import android.util.Patterns;
  • 42. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA CARDVIEW
  • 43. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA CARDVIEW
  • 44. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA CARDVIEW NIVELES EN PANTALLA
  • 45. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA CARDVIEW dependencies { … compile ‘com.android.support:cardview-v7:22.2.0’ }
  • 46. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA CARDVIEW: XML <android.support.V7.widget.CardView card_view:cardCornerRadius="4dp" card_view:cardElevation="4dp" card_view:cardUseCompatPadding="true"> <Relativelayout ..//.. </android.support. V7.widget.CardView>
  • 47. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA contentPadding cardUseCompatPadding cardPreventCornerOverlap cardMaxElevation cardElevation cardCornerRadius CARDVIEW: XML cardBackgroundColor
  • 48. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECYCLERVIEW
  • 49. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW Es una clase que hereda de ViewGroup que permite mostrar grandes colecciones o conjuntos de datos pero solo se dedica a reciclar vistas, otros componentes serán responsables de acceder a los datos y mostrarlos.
  • 50. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW RecyclerView necesita del método setLayoutManager(LayoutManager layout) para asignar un tipo de layout que le indique cómo debe renderizar, dando origen a un patrón por composición.
  • 51. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA StaggeredGridLayoutManager RECICLERVIEW: TIPOS DE LAYOUTMANAGER GridLayoutManager LinearLayoutManager
  • 52. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: TIPOS DE LAYOUTMANAGER LinearLayoutManager LinearLayoutManager linearLayoutManager = new LinearLayoutManager( this, LinearLayoutManager.VERTICAL, false); LinearLayoutManager
  • 53. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: TIPOS DE LAYOUTMANAGER LinearLayoutManager – LISTAS HORIZONTALES
  • 54. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: TIPOS DE LAYOUTMANAGER GridLayoutManager GridLayoutManager gridLayoutManager = new GridLayoutManager ( this, 2, GridLayoutManager.VERTICAL, false); GridLayoutManager
  • 55. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: TIPOS DE LAYOUTMANAGER GridLayoutManager - VISTAS RESPONSIVAS final int columnas= getResources().getInteger(R.integer. columnas); GridLayoutManager gridLayoutManager = new GridLayoutManager ( this, columnas, GridLayoutManager.VERTICAL, false); GridLayoutManager <integer name=“columnas">1</integer> <integer name=“columnas">2</integer> VALUES VALUES LARGOS
  • 56. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: TIPOS DE LAYOUTMANAGER GridLayoutManager + SpanSizeLookup Usando el metodo setSpanSizeLookup(SpanSize Lookup spanSizeLookup) establecemos la cantidad de spans que debe ocupar cada elemento en el adaptador.
  • 57. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: TIPOS DE LAYOUTMANAGER GridLayoutManager + SpanSizeLookup gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() @Override public int getSpanSize(int position) { int index = postion % 5; switch(index){ case 0: return 1; case 1: return 2; case 2: return 1; } }); GridLayoutManager SpanSizeLookup
  • 58. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: TIPOS DE LAYOUTMANAGER StaggeredGridLayoutManager StaggeredGridLayoutManager staggeredGridLayoutManager = new GridLayoutManager ( this, 2, GridLayoutManager.VERTICAL, false); staggeredGridLayoutManager.setGapStrategy(StaggeredGridL ayoutManager.GAP_HANDLING_NONE); StaggeredGridLayoutManager
  • 59. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW RecyclerView nos brinda un nuevo componente de nombre Recycler una clase encargada de gestionar si una vista será (desechada o separada) scrapped or detached para su reutilización.
  • 60. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW LAYOUTMANAGER RECYCLER ADAPTADOR OBTIENE LA VISTA RECICLA LA VISTA
  • 61. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW Si un vista es scrapped indica que continúa enlazada con el RecyclerView pero se ha marcado para su posible eliminación o reutilización. Cuando es reutilizada es considerada dirty y el adaptador es quien debe volver a enlazarla antes de ser mostrada.
  • 62. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW RECYLER POOL SCRAP HEAP
  • 63. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: SCRAP HEAP Es donde podemos interactuar con las vistas que no estás utilizando en el momento pero vas a volver a utilizar de forma inmediata, se consigue mediante el método detachAndScrapView(View child, Recycler recycler)
  • 64. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: RECYCLER POOL Es donde encuentran las vistas que no necesitamos más y utilizando el método removeAndRecycleView(View child, Recycler recycler) removemos las vistas.
  • 65. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: XML <android.support.v7.widget.RecyclerView android:id="@+id/reciclador" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="3dp" android:scrollbars="vertical" android:background="@color/colorDivider"/>
  • 66. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: JAVA import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView;
  • 67. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA DECLARA ELEMENTOS DE ARQUITECTURA RECICLERVIEW: JAVA
  • 68. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: JAVA private RecyclerView recycler; private RecyclerView.Adapter adapter; private RecyclerView.LayoutManager lManager;
  • 69. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA OBTIENE Y CONFIGURA EL RECYCLER RECICLERVIEW: JAVA
  • 70. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: JAVA recycler = (RecyclerView) findViewById(R.id.reciclador); recycler.setHasFixedSize(true);
  • 71. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA UTILIZA EL ADMINISTRADOR PARA LINEARLAYOUT RECICLERVIEW: JAVA
  • 72. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: JAVA lManager = new LinearLayoutManager(this); recycler.setLayoutManager(lManager);
  • 73. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA CREAMOS UN NUEVO ADAPTADOR RECICLERVIEW: JAVA
  • 74. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: JAVA adapter = new Adaptador(datos); recycler.setAdapter(adapter);
  • 75. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: ADAPTADOR.JAVA public class Adaptador extends RecyclerView.Adapter<Adaptador.AnimeViewHolder> { private List<Encapsulador> items; public static class AnimeViewHolder extends RecyclerView.ViewHolder { --- ITEMS--- }
  • 76. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RECICLERVIEW: ADAPTADOR.JAVA MÉTODOS onBindViewHolder onCreateViewHolder
  • 77. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA SNACKBAR
  • 78. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA SNACKBAR Muestra feedback sobre alguna operación realizada por el usuario, y es similar a un toast ya que aparece en pantalla por un corto periodo de tiempo y después desaparece automáticamente.
  • 79. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA SNACKBAR
  • 80. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA APARECE DESDE EL INFERIOR DE LA PANTALLA SOLO PUEDE MOSTRARSE UN AL MISMO TIEMPO DEBE MOSTRAR MENSAJES CORTOS PUEDE DESCARTARSE HACIA UN LATERAL SNACKBAR
  • 81. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA SNACKBAR import android.support.design.widget.Snackbar;
  • 82. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA CONTEXTO/VISTA TEXTO Snackbar.make() DURACCIÓN SNACKBAR: CONSTRUCCIÓN
  • 83. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA SNACKBAR: CONSTRUCCIÓN Snackbar.make(view, “TEXTO A MOSTRAR", Snackbar.LENGTH_LONG) .setAction(“BOTON", new View.OnClickListener() { @Override public void onClick(View view) { CÓDIGO RESPUESTA } }) .show();
  • 84. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA SNACKBAR <item name="colorAccent">@color/accentColor</item> SNACKBAR: CONSTRUCCIÓN ESTILOS
  • 85. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA SNACKBAR: CONSTRUCCIÓN ESTILOS Snackbar.make(view, “TEXTO A MOSTRAR", Snackbar.LENGTH_LONG) .setActionTextColor(getResources().getColor(R.color.snackbar_action)) View snackBarView = snackbar.getView(); snackBarView.setBackgroundColor(getResources().getColor(R.color.snackbar_background)); TextView tv = (TextView) snackBarView.findViewById(android.support.design.R.id.snackbar_text); tv.setTextColor(getResources().getColor(R.color.snackbar_message)); .setAction(“BOTON", new View.OnClickListener() { @Override public void onClick(View view) { CÓDIGO RESPUESTA } }) .show();
  • 86. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA SNACKBAR: CONSTRUCCIÓN ESTILOS <android.support.design.widget.CoordinatorLayout
  • 87. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATORDRAWER
  • 88. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER Es un nuevo interfaz de usuario en forma de un panel lateral que puede contener el menú principal u otras opciones de navegación de la App, y que permanece oculto por defecto.
  • 89. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER
  • 90. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: APERTURA DESLIZAMIENTO DESDE EL BORDE IZQUIERDO TOCANDO EL ICONO DE LA APLICACIÓN
  • 91. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA PRESIONANDO EL BOTÓN ATRÁS TOCANDO EL CONTENIDO FUERA DEL NAVIGATION NAVIGATION DRAWER: CIERRE DESLIZAMIENTO HACIA EL BORDE IZQUIERDO TOCANDO EL ICONO DE LA APLICACIÓN
  • 92. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: NAVEGACIÓN CRUZADA
  • 93. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: NAVEGACIÓN PROFUNDA
  • 94. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: NAVEGACIÓN EN ÁRBOL
  • 95. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: ELEMENTOS ELEMENTOS PLEGABLES CONTADORES ICONOS TÍTULOS
  • 96. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: ELEMENTOS TÍTULOS – ICONOS - CONTADORES
  • 97. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: ELEMENTOS ELEMENTOS PLEGABLES
  • 98. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: ELEMENTOS
  • 99. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: ELEMENTOS
  • 100. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: XML <android.support.v4.widget.DrawerLayout <include layout="@layout/contenido" /> <android.support.design.widget.NavigationView android:id="@+id/navigation“ app:headerLayout="@layout/cabecera" app:menu="@menu/menu_navegacion" /> </android.support.v4.widget.DrawerLayout>
  • 101. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: DRAWERLAYOUT Un DrawerLayout es un contenedor especial de la librería de soporte, que alberga dos tipos de contenido, el contenido principal y el contenido para el Navigation Drawer.
  • 102. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: JAVA SE REFERENCIA EL NAVIGATION DRAWER SE DECLARA EL NAVIGATION DRAWER
  • 103. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: JAVA private DrawerLayout drawerLayout; drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
  • 104. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: JAVA SE CREA UN ESCUCHADOR AL NAVIGATION DRAWER
  • 105. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: JAVA navigationView.setNavigationItemSelectedListener( new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(MenuItem menuItem) { menuItem.setChecked(true); ..//.. return true; } } );
  • 106. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: CIRCLEIMAGEVIEW
  • 107. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA dependencies { … compile 'de.hdodenhof:circleimageview:1.3.0' } NAVIGATION DRAWER: CIRCLEIMAGEVIEW
  • 108. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA NAVIGATION DRAWER: CIRCLEIMAGEVIEW <de.hdodenhof.circleimageview.CircleImageView android:id="@+id/circle_image" android:layout_width=“20dp" android:layout_height=“20dp" android:layout_marginBottom="16dp" android:scaleType="centerCrop" android:src="@drawable/imagen" app:border_color="@android:color/white" app:border_width="1dp" />
  • 109. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA RecyclerView Y CustomView RecyclerView.ItemAnimator RecyclerView.ItemDecoration ACTIVIDAD DE INVESTIGACIÓN ESTILO DE LAS ETIQUETAS EN TEXTINPULAYOUT
  • 110. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES MATERIAL DESIGN © J.D.CABRERA PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES