SlideShare una empresa de Scribd logo
Análisis y Diseño
      de Software


Interfaces de Usuario
Layouts y Vistas

 Carlos A. Iglesias <cif@gsi.dit.upm.es>

     Departamento de Ingeniería de Sistemas Telemáticos
                                 http://moodle.dit.upm.es
Temario
● 4.1   Introducción a Android [Gar10, cap1-2 ]
● 4.2   Desarrollo con Android [Gar10, cap3-5]
● 4.3   Interfaces de Usuario [Gar10, cap6]
 –  4.3.1 Ejemplo SobreTeleco
  – 4.3.2 Layouts y Views
  – 4.3.3 Widgets y Trazas. Interfaz del proyecto Yamba
  – 4.3.4 Hebras e Internacionalización. Interfaz Yamba
● 4.4 Intenciones y Servicios [Gar10, cap7-8]
● 4.5 Acceso   a Datos [Gar10, cap9]

                                 Interfaces de Usuario    2
Leyenda
Teoría


Ejercicio práctico en el ordenador


Ampliación de conocimientos


Lectura / Vídeo / Podcast


Práctica libre / Experimentación



                    Interfaces de Usuario   3
Bibliografía
●   Libro de texto:
    –   [Gar10] Learning Android, Marko Gargenta,
        O'Reilly, 2010. Disponible en
        http://ofps.oreilly.com/titles/9781449390501/
    –   Capítulo 6
    –   http://www.youtube.com/watch?v=SW82-YOOMIs
●   Android Developers
    –   http://developer.android.com/guide/topics/fundamentals.html
    –   http://developer.android.com/guide/topics/ui/index.html


                                      Interfaces de Usuario           4
Bibliografía complementaria
●
    Tutorial Android UI
      –   http://mobile.tutsplus.com/series/android-user-interface-design/
      –   http://developer.android.com/resources/tutorials/views/index.html
      –   http://www.droiddraw.org/widgetguide.html
      –   Notas de Victor Matos, basadas en The Busy Coder's Guide to Android Development, M. L.
          Murphy, CommonsWare, 2009.

●   Vistas
      –   http://developer.android.com/reference/android/view/View.html
●Ejemplos
      –   http://apcmag.com/building-a-simple-android-app.htm
      –   http://www.maestrosdelweb.com/editorial/curso-android-construir-lector-de-feeds/

                                                      Interfaces de Usuario                        5
Objetivos
●   Aprender a programar interfaces
●   Entender cómo crear interfaces en Android
●   Entender y saber usar Vistas (View) y
    Disposiciones (Layout)
●   Aprender a gestionar eventos




                          Interfaces de Usuario   6
La interfaz
● En Android,la interfaz es
 un árbol de objetos de dos
 tipos:
  –   Objetos View:
      componentes “widget”
      (campo de texto, botón,
      imagen, …)
  –   Objetos ViewGroup: clase
      base para los layout (lineal,
      tabular, etc.)




                                      Interfaces de Usuario   7
La clase View
● La   clase View es el componente básico para construir Uis
● UnaVista ocupa un área rectangular de la pantalla y es
 responsable de dibujarse y gestionar eventos
● View
     es la clase base de los widgets interactivos (botones,
 campos de texto, …)
● Laclase ViewGroup es una subclase de View que es la
 base para los layouts, que son contenedores invisibles que
 contienen otros objetos View (o ViewGroup) y definen sus
 propiedades.




                                  Interfaces de Usuario        8
Visualización actividad
● Cuando  una actividad llama a setContentView, le
 pasa el nodo raíz del árbol
● Android      lo recibe, y pinta este árbol
  –   Pide a cada ViewGroup que “se pinte”
  –   Cada hijo calcula su medida (ancho/alto) y posición. El
      nodo padre puede imponer medidas
  –   La medida puede ser
       •   Un número exacto
       •   FILL_PARENT (tan grande como el padre menos padding)
       •   WRAP_CONTENT (tan grande como el contenido más
           padding)

                                      Interfaces de Usuario       9
Atributos comunes de View
              y ViewGroup
orientation      Orientación. Valores: horizontal, vertical
layout_width     Ancho. Valor posible: exacto en dip (device independent pixels),
                 fill_parent, wrap_content
layout_height    Alto. Valor posible: exacto, fill_parent, wrap_content
layout_marginX   Espacio alrededor de la vista X = Top, Bottom, Left, Right, ej.
                 layout_marginTop)
layout_gravity   Cómo las vistas hijas se posicionan. Valores: top, bottom, left, right,
                 center_vertical, fill_vertical, center_horizontal, fill_horizontal, center,
                 fill, clip_vertical, clip_horizontal, start, end
layout_weight    Proporción del espacio disponible usado para la vista (valores: 1, 2,
                 3,..). Ej. 3 Vistas con peso 1, 1, 2, ocuparían 1/5, 1/5, 2/5 del total
layout_x         Coordenada x de la vista
layout_y         Coordenada y de la vista
gravity          Cómo se posiciona el contenido del widget respecto del mismo
                 (mismos valores que layout_gravity)
id               Identificador del widget. Convenio @+id/nombre (+ → Crear id en R)
text             Texto del widget. Convenio: @string/nombre (referencia
                 values/strings.xml)     Interfaces de Usuario                                 10
Nota: gravity vs
 layout_gravity




         Interfaces de Usuario   11
Usando objetos View
● Dar  valores a propiedades (p.ej. Al texto de un TextView,
 o...). Las propiedades con valores conocidos durante el
 desarrollo se pueden fijar en ficheros XML de layout
● Fijar   el foco. Pasar el foco a una vista con requestFocus()
● Fijar 'listeners'. Registrar listeners que serán notificados
 de cambios. P. ej. un botón expone un listener para
 notificar a los clientes cuándo ha sido pulsado.
● Fijar
      visibilidad. Puedes ocultar/descubrir vistas con
 setVisibility(int)



          http://developer.android.com/reference/android/view/View.html
                                             Interfaces de Usuario        12
Programar el layout
●   Podemos hacerlo:
    –   De forma declarativa: en XML (layout.xml),
        nos proporciona layouts estáticos
    –   De forma programática: en Java, podemos
        crear layouts de forma dinámica
●   Es más sencillo, más reutilizable y más
    sencillo de mantener el enfoque declarativo


                               Interfaces de Usuario   13
Programático vs Declarativo




          layout.xml




    strings.xml

                       Interfaces de Usuario   14
Layouts predefinidos
●   FrameLayout: pinta todas las vistas en la
    esquina superior izda
●   LinearLayout: pinta las vistas de izda a
    derecha (o arriba-abajo, según el atributo
    orientation)
●   TableLayout: pinta las vistas en filas y
    columnas
●    RelativeLayout: permite indicar posición
    relativa al la vista padre o a otra vista
                            Interfaces de Usuario   15
Algunos Layouts (ViewGroup)
  http://developer.android.com/resources/tutorials/views/index.html




   FrameLayout




                                       Interfaces de Usuario          16
Algunas vistas (widgets)




             Interfaces de Usuario   17
TextView




     Interfaces de Usuario   18
EditText




android:inputType=”phone”


                     http://www.droiddraw.org/widgetguide.html




                                                          Interfaces de Usuario   19
AnalogClock, DigitalClock




             Interfaces de Usuario   20
Button




    Interfaces de Usuario   21
Spinner




http://developer.android.com/resources/tutorials/views/hello-spinner.html




                                           Interfaces de Usuario            22
RadioGroup/RadioButton




            Interfaces de Usuario   23
DatePicker, TimePicker




            Interfaces de Usuario   24
Imágenes




     Interfaces de Usuario   25
ProgressBar




      Interfaces de Usuario   26
Muchas más
●   Consulta en:
●http://developer.android.com/reference/android/widget/package-summary.html




                                          Interfaces de Usuario               27
Relación XML y Java
●   En XML declaramos un id
    –    android:id="@+id/imageViewEtsit"
● En Java accedemos a un widget con
findViewById
    –   ImageView foto = (ImageView) findViewById(R.id.imageViewEtsit);

●Como vimos, la clase R se genera a partir
del layout XML, y en la la clase Java de la
actividad decíamos qué layout se usaba con
setContentView(R.layout.main)
                                         Interfaces de Usuario            28
Resumen
●   En este tema hemos revisado los
    principios de los layouts en Android
●   Hemos conocido la diferencia entre View y
    ViewGroup, y los principales atributos
●   Hemos visto algunos widgets disponibles
●   Hemos revisado la relación entre XML y
    Java en las interfaces


                           Interfaces de Usuario   29
¿Preguntas?




      Interfaces de Usuario   30

Más contenido relacionado

Similar a Tema 4 3_2_interfaces_de_usuario

Tema 4 3_3_interfaces_de_usuario
Tema 4 3_3_interfaces_de_usuarioTema 4 3_3_interfaces_de_usuario
Tema 4 3_3_interfaces_de_usuario
Carlos A. Iglesias
 
MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a Android
Alberto Ruibal
 
Sesion 11 Teoria.pdf
Sesion 11 Teoria.pdfSesion 11 Teoria.pdf
Sesion 11 Teoria.pdf
DianaSullcav
 
01.2 Layouts and resources for the UI 88.en.es (1) (1).pdf
01.2 Layouts and resources for the UI 88.en.es (1) (1).pdf01.2 Layouts and resources for the UI 88.en.es (1) (1).pdf
01.2 Layouts and resources for the UI 88.en.es (1) (1).pdf
juniorhuallpaaiquipa1
 
curso android tema 3
curso android tema 3curso android tema 3
curso android tema 3Frank Jorge
 
List view y UI en Android
List view y UI en AndroidList view y UI en Android
List view y UI en AndroidByron Andres
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"
Alberto Ruibal
 
Manual android
Manual androidManual android
Manual android
Jose Pereda
 
Layouts en Android Studio
Layouts en Android StudioLayouts en Android Studio
Layouts en Android Studio
yakeline vilchez cruzado
 
Resumen el gran libro de andorid
Resumen el gran libro de andoridResumen el gran libro de andorid
Resumen el gran libro de andorid
Jilton Delgado
 
Introducción al Desarrollo Android - Programá tu Futuro
Introducción al Desarrollo Android - Programá tu FuturoIntroducción al Desarrollo Android - Programá tu Futuro
Introducción al Desarrollo Android - Programá tu Futuro
Maribel Maisano
 
"Android de la A a la Z" -- Unidad 10
"Android de la A a la Z" -- Unidad 10"Android de la A a la Z" -- Unidad 10
"Android de la A a la Z" -- Unidad 10
Android UNAM
 
Android Superstar - Buenas Prácticas
Android Superstar - Buenas PrácticasAndroid Superstar - Buenas Prácticas
Android Superstar - Buenas Prácticas
Ignacio Muñoz Vicente
 

Similar a Tema 4 3_2_interfaces_de_usuario (20)

Tema 4.5 interfaces
Tema 4.5 interfacesTema 4.5 interfaces
Tema 4.5 interfaces
 
Tema 4 3_3_interfaces_de_usuario
Tema 4 3_3_interfaces_de_usuarioTema 4 3_3_interfaces_de_usuario
Tema 4 3_3_interfaces_de_usuario
 
MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a Android
 
Sesion 11 Teoria.pdf
Sesion 11 Teoria.pdfSesion 11 Teoria.pdf
Sesion 11 Teoria.pdf
 
01.2 Layouts and resources for the UI 88.en.es (1) (1).pdf
01.2 Layouts and resources for the UI 88.en.es (1) (1).pdf01.2 Layouts and resources for the UI 88.en.es (1) (1).pdf
01.2 Layouts and resources for the UI 88.en.es (1) (1).pdf
 
curso android tema 3
curso android tema 3curso android tema 3
curso android tema 3
 
List view y UI en Android
List view y UI en AndroidList view y UI en Android
List view y UI en Android
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"
 
Manual android
Manual androidManual android
Manual android
 
Layouts en Android Studio
Layouts en Android StudioLayouts en Android Studio
Layouts en Android Studio
 
S5 android ui
S5 android uiS5 android ui
S5 android ui
 
Resumen el gran libro de andorid
Resumen el gran libro de andoridResumen el gran libro de andorid
Resumen el gran libro de andorid
 
Introducción al Desarrollo Android - Programá tu Futuro
Introducción al Desarrollo Android - Programá tu FuturoIntroducción al Desarrollo Android - Programá tu Futuro
Introducción al Desarrollo Android - Programá tu Futuro
 
Seminario Android
Seminario AndroidSeminario Android
Seminario Android
 
"Android de la A a la Z" -- Unidad 10
"Android de la A a la Z" -- Unidad 10"Android de la A a la Z" -- Unidad 10
"Android de la A a la Z" -- Unidad 10
 
Effective Android UI - spanish
Effective Android UI - spanishEffective Android UI - spanish
Effective Android UI - spanish
 
Android Superstar - Buenas Prácticas
Android Superstar - Buenas PrácticasAndroid Superstar - Buenas Prácticas
Android Superstar - Buenas Prácticas
 
Android
AndroidAndroid
Android
 
20 preguntas
20 preguntas20 preguntas
20 preguntas
 
Cuestionario android
Cuestionario androidCuestionario android
Cuestionario android
 

Más de Carlos A. Iglesias

GSI Research Group Presentation
GSI Research Group PresentationGSI Research Group Presentation
GSI Research Group Presentation
Carlos A. Iglesias
 
Entorno PHP
Entorno PHPEntorno PHP
Entorno PHP
Carlos A. Iglesias
 
Bootstrap 3.
Bootstrap 3.Bootstrap 3.
Bootstrap 3.
Carlos A. Iglesias
 
Introducción CSS
Introducción CSSIntroducción CSS
Introducción CSS
Carlos A. Iglesias
 
Introducción HTML
Introducción HTMLIntroducción HTML
Introducción HTML
Carlos A. Iglesias
 
Presentación TEWC
Presentación TEWCPresentación TEWC
Presentación TEWC
Carlos A. Iglesias
 
UPM GSI Presentation
UPM GSI PresentationUPM GSI Presentation
UPM GSI Presentation
Carlos A. Iglesias
 
Introducción Análisis y Diseño
Introducción Análisis y DiseñoIntroducción Análisis y Diseño
Introducción Análisis y Diseño
Carlos A. Iglesias
 
Introducción TEWC
Introducción TEWCIntroducción TEWC
Introducción TEWC
Carlos A. Iglesias
 
Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionCarlos A. Iglesias
 

Más de Carlos A. Iglesias (20)

GSI Research Group Presentation
GSI Research Group PresentationGSI Research Group Presentation
GSI Research Group Presentation
 
Entorno PHP
Entorno PHPEntorno PHP
Entorno PHP
 
Bootstrap 3.
Bootstrap 3.Bootstrap 3.
Bootstrap 3.
 
Introducción CSS
Introducción CSSIntroducción CSS
Introducción CSS
 
Introducción HTML
Introducción HTMLIntroducción HTML
Introducción HTML
 
Presentación TEWC
Presentación TEWCPresentación TEWC
Presentación TEWC
 
UPM GSI Presentation
UPM GSI PresentationUPM GSI Presentation
UPM GSI Presentation
 
Introducción Análisis y Diseño
Introducción Análisis y DiseñoIntroducción Análisis y Diseño
Introducción Análisis y Diseño
 
PHP. Bases de Datos
PHP. Bases de DatosPHP. Bases de Datos
PHP. Bases de Datos
 
PHP. Tecnologías Web.
PHP. Tecnologías Web.PHP. Tecnologías Web.
PHP. Tecnologías Web.
 
1 intro php
1 intro php1 intro php
1 intro php
 
0 entorno php
0 entorno php0 entorno php
0 entorno php
 
Introducción TEWC
Introducción TEWCIntroducción TEWC
Introducción TEWC
 
Tema 4.1 Introduccion Android
Tema 4.1 Introduccion AndroidTema 4.1 Introduccion Android
Tema 4.1 Introduccion Android
 
Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacion
 
Tema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre telecoTema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre teleco
 
Tema 4.4 Actividades
Tema 4.4 ActividadesTema 4.4 Actividades
Tema 4.4 Actividades
 
Tema 4.6 Intenciones
Tema 4.6 IntencionesTema 4.6 Intenciones
Tema 4.6 Intenciones
 
Tema 4.7 Acceso a datos
Tema 4.7 Acceso a datosTema 4.7 Acceso a datos
Tema 4.7 Acceso a datos
 
Tema 4.8 Preferencias
Tema 4.8 PreferenciasTema 4.8 Preferencias
Tema 4.8 Preferencias
 

Último

INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 

Último (20)

INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 

Tema 4 3_2_interfaces_de_usuario

  • 1. Análisis y Diseño de Software Interfaces de Usuario Layouts y Vistas Carlos A. Iglesias <cif@gsi.dit.upm.es> Departamento de Ingeniería de Sistemas Telemáticos http://moodle.dit.upm.es
  • 2. Temario ● 4.1 Introducción a Android [Gar10, cap1-2 ] ● 4.2 Desarrollo con Android [Gar10, cap3-5] ● 4.3 Interfaces de Usuario [Gar10, cap6] – 4.3.1 Ejemplo SobreTeleco – 4.3.2 Layouts y Views – 4.3.3 Widgets y Trazas. Interfaz del proyecto Yamba – 4.3.4 Hebras e Internacionalización. Interfaz Yamba ● 4.4 Intenciones y Servicios [Gar10, cap7-8] ● 4.5 Acceso a Datos [Gar10, cap9] Interfaces de Usuario 2
  • 3. Leyenda Teoría Ejercicio práctico en el ordenador Ampliación de conocimientos Lectura / Vídeo / Podcast Práctica libre / Experimentación Interfaces de Usuario 3
  • 4. Bibliografía ● Libro de texto: – [Gar10] Learning Android, Marko Gargenta, O'Reilly, 2010. Disponible en http://ofps.oreilly.com/titles/9781449390501/ – Capítulo 6 – http://www.youtube.com/watch?v=SW82-YOOMIs ● Android Developers – http://developer.android.com/guide/topics/fundamentals.html – http://developer.android.com/guide/topics/ui/index.html Interfaces de Usuario 4
  • 5. Bibliografía complementaria ● Tutorial Android UI – http://mobile.tutsplus.com/series/android-user-interface-design/ – http://developer.android.com/resources/tutorials/views/index.html – http://www.droiddraw.org/widgetguide.html – Notas de Victor Matos, basadas en The Busy Coder's Guide to Android Development, M. L. Murphy, CommonsWare, 2009. ● Vistas – http://developer.android.com/reference/android/view/View.html ●Ejemplos – http://apcmag.com/building-a-simple-android-app.htm – http://www.maestrosdelweb.com/editorial/curso-android-construir-lector-de-feeds/ Interfaces de Usuario 5
  • 6. Objetivos ● Aprender a programar interfaces ● Entender cómo crear interfaces en Android ● Entender y saber usar Vistas (View) y Disposiciones (Layout) ● Aprender a gestionar eventos Interfaces de Usuario 6
  • 7. La interfaz ● En Android,la interfaz es un árbol de objetos de dos tipos: – Objetos View: componentes “widget” (campo de texto, botón, imagen, …) – Objetos ViewGroup: clase base para los layout (lineal, tabular, etc.) Interfaces de Usuario 7
  • 8. La clase View ● La clase View es el componente básico para construir Uis ● UnaVista ocupa un área rectangular de la pantalla y es responsable de dibujarse y gestionar eventos ● View es la clase base de los widgets interactivos (botones, campos de texto, …) ● Laclase ViewGroup es una subclase de View que es la base para los layouts, que son contenedores invisibles que contienen otros objetos View (o ViewGroup) y definen sus propiedades. Interfaces de Usuario 8
  • 9. Visualización actividad ● Cuando una actividad llama a setContentView, le pasa el nodo raíz del árbol ● Android lo recibe, y pinta este árbol – Pide a cada ViewGroup que “se pinte” – Cada hijo calcula su medida (ancho/alto) y posición. El nodo padre puede imponer medidas – La medida puede ser • Un número exacto • FILL_PARENT (tan grande como el padre menos padding) • WRAP_CONTENT (tan grande como el contenido más padding) Interfaces de Usuario 9
  • 10. Atributos comunes de View y ViewGroup orientation Orientación. Valores: horizontal, vertical layout_width Ancho. Valor posible: exacto en dip (device independent pixels), fill_parent, wrap_content layout_height Alto. Valor posible: exacto, fill_parent, wrap_content layout_marginX Espacio alrededor de la vista X = Top, Bottom, Left, Right, ej. layout_marginTop) layout_gravity Cómo las vistas hijas se posicionan. Valores: top, bottom, left, right, center_vertical, fill_vertical, center_horizontal, fill_horizontal, center, fill, clip_vertical, clip_horizontal, start, end layout_weight Proporción del espacio disponible usado para la vista (valores: 1, 2, 3,..). Ej. 3 Vistas con peso 1, 1, 2, ocuparían 1/5, 1/5, 2/5 del total layout_x Coordenada x de la vista layout_y Coordenada y de la vista gravity Cómo se posiciona el contenido del widget respecto del mismo (mismos valores que layout_gravity) id Identificador del widget. Convenio @+id/nombre (+ → Crear id en R) text Texto del widget. Convenio: @string/nombre (referencia values/strings.xml) Interfaces de Usuario 10
  • 11. Nota: gravity vs layout_gravity Interfaces de Usuario 11
  • 12. Usando objetos View ● Dar valores a propiedades (p.ej. Al texto de un TextView, o...). Las propiedades con valores conocidos durante el desarrollo se pueden fijar en ficheros XML de layout ● Fijar el foco. Pasar el foco a una vista con requestFocus() ● Fijar 'listeners'. Registrar listeners que serán notificados de cambios. P. ej. un botón expone un listener para notificar a los clientes cuándo ha sido pulsado. ● Fijar visibilidad. Puedes ocultar/descubrir vistas con setVisibility(int) http://developer.android.com/reference/android/view/View.html Interfaces de Usuario 12
  • 13. Programar el layout ● Podemos hacerlo: – De forma declarativa: en XML (layout.xml), nos proporciona layouts estáticos – De forma programática: en Java, podemos crear layouts de forma dinámica ● Es más sencillo, más reutilizable y más sencillo de mantener el enfoque declarativo Interfaces de Usuario 13
  • 14. Programático vs Declarativo layout.xml strings.xml Interfaces de Usuario 14
  • 15. Layouts predefinidos ● FrameLayout: pinta todas las vistas en la esquina superior izda ● LinearLayout: pinta las vistas de izda a derecha (o arriba-abajo, según el atributo orientation) ● TableLayout: pinta las vistas en filas y columnas ● RelativeLayout: permite indicar posición relativa al la vista padre o a otra vista Interfaces de Usuario 15
  • 16. Algunos Layouts (ViewGroup) http://developer.android.com/resources/tutorials/views/index.html FrameLayout Interfaces de Usuario 16
  • 17. Algunas vistas (widgets) Interfaces de Usuario 17
  • 18. TextView Interfaces de Usuario 18
  • 19. EditText android:inputType=”phone” http://www.droiddraw.org/widgetguide.html Interfaces de Usuario 19
  • 20. AnalogClock, DigitalClock Interfaces de Usuario 20
  • 21. Button Interfaces de Usuario 21
  • 23. RadioGroup/RadioButton Interfaces de Usuario 23
  • 24. DatePicker, TimePicker Interfaces de Usuario 24
  • 25. Imágenes Interfaces de Usuario 25
  • 26. ProgressBar Interfaces de Usuario 26
  • 27. Muchas más ● Consulta en: ●http://developer.android.com/reference/android/widget/package-summary.html Interfaces de Usuario 27
  • 28. Relación XML y Java ● En XML declaramos un id – android:id="@+id/imageViewEtsit" ● En Java accedemos a un widget con findViewById – ImageView foto = (ImageView) findViewById(R.id.imageViewEtsit); ●Como vimos, la clase R se genera a partir del layout XML, y en la la clase Java de la actividad decíamos qué layout se usaba con setContentView(R.layout.main) Interfaces de Usuario 28
  • 29. Resumen ● En este tema hemos revisado los principios de los layouts en Android ● Hemos conocido la diferencia entre View y ViewGroup, y los principales atributos ● Hemos visto algunos widgets disponibles ● Hemos revisado la relación entre XML y Java en las interfaces Interfaces de Usuario 29
  • 30. ¿Preguntas? Interfaces de Usuario 30