SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à Interfaces de Usuario en Android

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_usuarioCarlos A. Iglesias
 
MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidAlberto Ruibal
 
Sesion 11 Teoria.pdf
Sesion 11 Teoria.pdfSesion 11 Teoria.pdf
Sesion 11 Teoria.pdfDianaSullcav
 
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).pdfjuniorhuallpaaiquipa1
 
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
 
Resumen el gran libro de andorid
Resumen el gran libro de andoridResumen el gran libro de andorid
Resumen el gran libro de andoridJilton 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 FuturoMaribel 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 10Android UNAM
 

Similaire à Interfaces de Usuario en Android (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
 

Plus 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
 

Dernier

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Dernier (10)

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

Interfaces de Usuario en Android

  • 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