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


      Interfaces de Usuario
 Introducción con Ejemplo SobreTeleco

      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
Bibliografía
●   Libro de texto:
    – [Gar10] Learning Android, Marko Gargenta,
        O'Reilly, 2010. Disponible en
        http://ofps.oreilly.com/titles/9781449390501/
    –   Capítulos 4-5
    –   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           3
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

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




                                                          Interfaces de Usuario              4
Objetivos
● Entender los conceptos básicos para desarrollar una
 interfaz de usuario en Android
● Entender   la estructura de un proyecto Android
● Entender  qué son los recursos, R, las disposiciones
 (layouts) y las vistas (view)
● Saber   crear una actividad y asociarle un layout
● Asociar   un gestor de eventos a un objeto View en el layout
● Saber   inspeccionar la jerarquía de Vistas en eclipse
● Desarrollar   una primera interfaz


                                       Interfaces de Usuario     5
Interfaces en Android
          ●   “Separation of
              concerns”
               –   Funcionalidad
                   (Java)
               –   Disposición (XML)
          ●   Podemos definir
              diferentes layouts
              para diferentes
              dispositivos

              Interfaces de Usuario    6
UI en Android
●    En Android podemos definir de dos formas
    las interfaces:
    –   Declarativa:
         •   En XML
         •   Parecido a crear una página web en HTML
    –   Programática:
         •   En Java
         •   Parecido a interfaces en Java (Swing / AWT)


                                    Interfaces de Usuario   7
UIs: Visión general:
           Views y Layout
●   Vista (View): componente
●   Disposición (Layout): contenedor




                          Interfaces de Usuario   8
El lenguaje XML (eXtensible
         Markup Language)
●   Repasar FTEL
     –   http://www.gsi.dit.upm.es/~gfer/ftel/Procesadores.pdf
●   XML está diseñado para la representación
    de datos a efectos de almacenamiento y
    comunicación <?xml version="1.0" encoding="UTF-8"?>
                   <!DOCTYPE asignaturas2010 SYSTEM "asignaturas.dtd">
                           <asignaturas2010>
                             <asignatura codigo="95000024" acronimo="ADSW">
                                <nombre>Análisis y Diseño del Software</nombre>
                                <creditos>4.5</creditos>
                                <semestre S="2" />
                                <tipo T="obligatoria" />
                                <guia>
                                   <url href="http//www.lab.dit.upm.es/adsw" />
                                </guia>
                              </asignatura>
                           <!--otras asignaturas-->
                           </asignaturas2010>
                                              Interfaces de Usuario               9
Ejercicio: SobreTeleco
●   Vamos a seguir el ejemplo un poco
    modificado para la asignatura
    –   http://apcmag.com/building-a-simple-android-app.htm
●   Pasos:
    –   Crear un proyecto Android en Eclipse:
        SobreTeleco




                                       Interfaces de Usuario   10
Explorar proyecto Android

              CÓDIGO FUENTE

              CÓDIGO GENERADO

              BIBLIOTECAS
              ASSET
           CÓDIGO COMPILADO DEVX, FICHERO APK



              RECURSOS



              CONFIGURACIÓN
                Interfaces de Usuario       11
Ejercicio
●   Explora la estructura del proyecto
    HolaMundo que hicimos en el capítulo
    anterior.
    –   ¿Qué hay en bin?
    –   Pincha en main.xml, y selecciona la pestaña
        graphicalLayout ¿qué ves?




                               Interfaces de Usuario   12
Explorando un proyecto...
● source:    fuentes java del proyecto
● gen:ficheros generados del proyecto. Android
 genera R.java que 'mapea' los recursos UI XML a
 Java
● library:   framework Android
● assets:
       ficheros de cualquier formato, que
 podemos tratar como InputStream (veremos)
● res:recursos, organizados en una estructura fija en
 imágenes, layout y texto. Se referenciarán con R:
 R.layout (veremos)
                                 Interfaces de Usuario   13
Recursos
● Como hay gran variedad de resoluciones
 y tamaños de pantallas (teléfono, tableta,
 TV), podemos ofrecer gráficos alternativos
 con diferente resolución / tamaño.
●   Ver
http://developer.android.com/guide/topics/resources/providing-resources.html

●   Ej.                                                Recurso por defecto

                                                       Recurso alta densidad
                                                       (high dpi, dots per inch,
                                                       aprox. 240 dpi)

                                          Interfaces de Usuario                    14
Recursos




http://coding.smashingmagazine.com/2011/06/30/designing-for-android/
http://androideity.com/2011/08/04/disenando-para-android/
                                     Interfaces de Usuario             15
Crear una actividad




 Fija como contenido el fichero
 res/layout/main.xml. Se genera una
 referencia en R este fichero:
 R.layout.main

                          Interfaces de Usuario   16
Referencias a imágenes



                   R.drawable.ic_launcher



                   R.layout.main
                   R.values.strings

Se selecciona la
imagen según la
resolución del
dispositivo


                                   Interfaces de Usuario   17
Modificando el layout
     (main.xml)




                         Doble click




           Interfaces de Usuario       18
Cambiamos la interfaz




           Interfaces de Usuario   19
Refactorización
●   Técnica de software que consiste en
    modificar el código para que tenga “más
    calidad”
●    Ej. extraer una interfaz de una clase pasar
    unas líneas de código a método privado,
    renombrar una clase o método, …
●    Eclipse y muchos IDEs dan soporte a la
    refactorización: Menú->Refactor

                            Interfaces de Usuario   20
Refactorización
●   Pasamos el string a res/values/strings.xml




                          Interfaces de Usuario   21
Añadir botón




       Interfaces de Usuario   22
Botón




Llevamos este strings.xml




                               Interfaces de Usuario   23
Cambiamos el botón




          Interfaces de Usuario   24
Y desplegamos




     El botón no hace nada en el terminal




            Interfaces de Usuario           25
Añadir funcionalidad botón
             (I)
  main.xml




              Interfaces de Usuario   26
Añadir funcionalidad botón
            (II)




    Toast es un tipo de notificación en pantalla

                                 Interfaces de Usuario   27
Añadir funcionalidad botón
           (III)




              Interfaces de Usuario   28
Refactorizar String




          Interfaces de Usuario   29
¡Probar!




     Interfaces de Usuario   30
Copiamos imágenes
●   Vamos a copiar las imágenes que vamos a
    usar (están en moodle en un zip)
●   Las copiamos en res/drawable-hdpi




                         Interfaces de Usuario   31
Añadiendo una imagen




           Interfaces de Usuario   32
Añadiendo una imagen




           Interfaces de Usuario   33
Modificando tamaño




          Interfaces de Usuario   34
ImageView
● contentDescription: mensaje sobre qué
 representa la imagen, por accesibilidad
● match_parent: tan grande como el padre
● wrap_content: tan grande como para que
 quepa el texto
● weight: escalado


●   0dp: el que fije weight
                              Interfaces de Usuario   35
Cambiando la imagen (I)




            Interfaces de Usuario   36
Cambiando la imagen (II)




             Interfaces de Usuario   37
¡Lo probamos!




       Interfaces de Usuario   38
Recapitulando (I)
● Hemos hecho una aplicación
 con 1 Actividad
● Lasactividades las creamos
 en Java extendiendo Activity
  –   Cuando se lance la actividad se
      invocará el método onCreate,
      que tiene que la vista
      (setContentView(R.layout.main)




                                Interfaces de Usuario   39
R y setContentView
●R es una clase Java que se genera
 automáticamente a partir de un 'layout' XML
● setContentView(R.layout.main)  – usado en
 onCreate() - el proceso se llama 'insuflar'
 (inflate)
  –   Lee el XML, crea objetos java por cada vista
      (componente: botón, texto, imagen, …)
  –   Fija atributos de cada objeto por cada propiedad
      XML

                               Interfaces de Usuario     40
Recapitulando (II)
● En el layout XML hemos
 definido
  –   un layout (LinearLayout)
      que contiene
  –   Vistas (TextView,
      ImageView, Button)
● Lostextos los ponemos
 en res/values/strings.xml



                                 Interfaces de Usuario   41
Hierarchy Viewer
●   Lanza la aplicación (Run-as) en el
    emulador (no vale en dispositivo real!)
●   Abre la jerarquía
    –   Window->Open Perspective-> Hierarchy
        viewer




                             Interfaces de Usuario   42
Hierarchy Viewer
●   Pincha en Windows en la aplicación que
    quieres depurar, y ya lo ves :)




                         Interfaces de Usuario   43
Perspectiva Hierarchy Viewer




   Recuerda que sólo funciona con el emulador lanzado

                                   Interfaces de Usuario   44
Ej. FrameLayout




        Interfaces de Usuario   45
Ej. TextView




       Interfaces de Usuario   46
Ej. TextView




       Interfaces de Usuario   47
Los tres puntos
                    (curiosidad)
● Lostres puntos indican las prestaciones, miden de izda a
 derecha los tiempos del proceso de visualización (render)
  –   Measure time: calcular alto/ancho
  –   Layout time: dice a las vistas las posiciones dentro de las medidas
  –   Draw time: pinta los componentes
● Verde:   más rápido que el 50% de las otras vistas
● Amarillo:   más lento que el 50% de las otras vistas
● Rojo:   el más lento del árbol




                                          Interfaces de Usuario             48
Resumen
● Hemos   aprendido los principales componentes
 de una aplicación: actividades, servicios,
 proveedores de contenidos y receptores de
 difusión
● Las   actividades y servicios tienen un ciclo de vida
● Las
    intenciones permiten que el sistema active
 componentes
● El
   contexto de aplicación permite que los
 componentes compartan datos y recursos

                               Interfaces de Usuario      49
¿Preguntas?




      Interfaces de Usuario   50

Más contenido relacionado

PDF
Tema 4 3_2_interfaces_de_usuario
PDF
Tema 4 3_3_interfaces_de_usuario
PDF
Tema 4.5 interfaces
PDF
Controles
DOCX
Manual de bouml
PDF
Mobile Processing Introduccion
PPTX
Unidad 2 tópicos avanzados de programacion
PPT
Software Para Crear Clases Virtuales
Tema 4 3_2_interfaces_de_usuario
Tema 4 3_3_interfaces_de_usuario
Tema 4.5 interfaces
Controles
Manual de bouml
Mobile Processing Introduccion
Unidad 2 tópicos avanzados de programacion
Software Para Crear Clases Virtuales

La actualidad más candente (6)

PDF
Desarrollo en Android: Conceptos Básicos
PDF
Introduccion al Visual Basic subido JHS
PPT
Software Libre Y Ambientes virtuales de aprendizaje
Desarrollo en Android: Conceptos Básicos
Introduccion al Visual Basic subido JHS
Software Libre Y Ambientes virtuales de aprendizaje
Publicidad

Destacado (7)

PPTX
March 22, 2013 Revenue Generation Task Force Meeting
PDF
Tema 4.8 Preferencias
PDF
Tema 4.2.2 Desarrollo con Android. El Framework de Android.
PDF
Nc cuarto cuadrante
PDF
Tema 4 4_1_intenciones_servicios
PPTX
Android basics
PDF
Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013]
March 22, 2013 Revenue Generation Task Force Meeting
Tema 4.8 Preferencias
Tema 4.2.2 Desarrollo con Android. El Framework de Android.
Nc cuarto cuadrante
Tema 4 4_1_intenciones_servicios
Android basics
Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013]
Publicidad

Similar a Tema 4 3_1_interfaces_de_usuario (20)

DOCX
Manual android
PDF
Tema 4.3 Ejemplo sobre teleco
PPTX
Introducción a Android
DOCX
R esume libro el gran libro de android
PPSX
Aplicaciones android
PDF
239984949 curso-android-pptx
PDF
Aplicaciones Android Nivel I
DOC
Preguntas de android
PDF
Seminario Android
PDF
Tema 4 0_interfaces_moviles
DOC
Wendyyy
DOC
Wendyyy
PDF
curso android tema 3
PPTX
Presentación de eclipse(componentes básicos)
KEY
Android la plataforma móvil open source
PDF
APLICACIONES CREADAS PARA ANDROID
PDF
Resumen el gran libro de andorid
PDF
8564910 manual sq_lite
PDF
MobileCONGalicia Introducción a Android
PPTX
Aplicación Android Patito helpme
Manual android
Tema 4.3 Ejemplo sobre teleco
Introducción a Android
R esume libro el gran libro de android
Aplicaciones android
239984949 curso-android-pptx
Aplicaciones Android Nivel I
Preguntas de android
Seminario Android
Tema 4 0_interfaces_moviles
Wendyyy
Wendyyy
curso android tema 3
Presentación de eclipse(componentes básicos)
Android la plataforma móvil open source
APLICACIONES CREADAS PARA ANDROID
Resumen el gran libro de andorid
8564910 manual sq_lite
MobileCONGalicia Introducción a Android
Aplicación Android Patito helpme

Más de Carlos A. Iglesias (20)

PDF
GSI Research Group Presentation
PDF
Entorno PHP
PDF
Bootstrap 3.
PDF
Introducción CSS
PDF
Introducción HTML
PDF
Presentación TEWC
PDF
UPM GSI Presentation
PDF
Introducción Análisis y Diseño
PDF
PHP. Bases de Datos
PDF
PHP. Tecnologías Web.
PDF
1 intro php
PDF
0 entorno php
PDF
Introducción TEWC
PDF
Tema 4.1 Introduccion Android
PDF
Tema 4.2 Desarrollo Android e instalacion
PDF
Tema 4.4 Actividades
PDF
Tema 4.6 Intenciones
PDF
Tema 4.7 Acceso a datos
PDF
Tema 4.9 Hebras
PDF
Gestion de Ideas
GSI Research Group Presentation
Entorno PHP
Bootstrap 3.
Introducción CSS
Introducción HTML
Presentación TEWC
UPM GSI Presentation
Introducción Análisis y Diseño
PHP. Bases de Datos
PHP. Tecnologías Web.
1 intro php
0 entorno php
Introducción TEWC
Tema 4.1 Introduccion Android
Tema 4.2 Desarrollo Android e instalacion
Tema 4.4 Actividades
Tema 4.6 Intenciones
Tema 4.7 Acceso a datos
Tema 4.9 Hebras
Gestion de Ideas

Último (20)

PDF
Conceptos básicos de programación tecnología.pdf
PPTX
Administración se srevidores de apliaciones
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PDF
SAP Transportation Management para LSP, TM140 Col18
PDF
clase auditoria informatica 2025.........
PDF
Calidad desde el Docente y la mejora continua .pdf
PPTX
Presentación de Redes de Datos modelo osi
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PDF
ACTIVIDAD 2.pdf j
PPTX
Yogurt de tocosh (1).pptx preparacion receta
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
Introduccion a servidores de Aplicaciones (1).pptx
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
Estrategia de apoyo tecnología miguel angel solis
PDF
Estrategia de apoyo tecnología grado 9-3
PPT
Que son las redes de computadores y sus partes
PDF
Maste clas de estructura metálica y arquitectura
Conceptos básicos de programación tecnología.pdf
Administración se srevidores de apliaciones
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
SAP Transportation Management para LSP, TM140 Col18
clase auditoria informatica 2025.........
Calidad desde el Docente y la mejora continua .pdf
Presentación de Redes de Datos modelo osi
Presentación PASANTIAS AuditorioOO..pptx
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
ACTIVIDAD 2.pdf j
Yogurt de tocosh (1).pptx preparacion receta
historia_web de la creacion de un navegador_presentacion.pptx
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Introduccion a servidores de Aplicaciones (1).pptx
REDES INFORMATICAS REDES INFORMATICAS.pptx
Plantilla para Diseño de Narrativas Transmedia.pdf
Estrategia de apoyo tecnología miguel angel solis
Estrategia de apoyo tecnología grado 9-3
Que son las redes de computadores y sus partes
Maste clas de estructura metálica y arquitectura

Tema 4 3_1_interfaces_de_usuario

  • 1. Análisis y Diseño de Software Interfaces de Usuario Introducción con Ejemplo SobreTeleco 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. Bibliografía ● Libro de texto: – [Gar10] Learning Android, Marko Gargenta, O'Reilly, 2010. Disponible en http://ofps.oreilly.com/titles/9781449390501/ – Capítulos 4-5 – 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 3
  • 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 ● Ejemplos – http://apcmag.com/building-a-simple-android-app.htm – http://www.maestrosdelweb.com/editorial/curso-android-construir-lector-de-feeds/ Interfaces de Usuario 4
  • 5. Objetivos ● Entender los conceptos básicos para desarrollar una interfaz de usuario en Android ● Entender la estructura de un proyecto Android ● Entender qué son los recursos, R, las disposiciones (layouts) y las vistas (view) ● Saber crear una actividad y asociarle un layout ● Asociar un gestor de eventos a un objeto View en el layout ● Saber inspeccionar la jerarquía de Vistas en eclipse ● Desarrollar una primera interfaz Interfaces de Usuario 5
  • 6. Interfaces en Android ● “Separation of concerns” – Funcionalidad (Java) – Disposición (XML) ● Podemos definir diferentes layouts para diferentes dispositivos Interfaces de Usuario 6
  • 7. UI en Android ● En Android podemos definir de dos formas las interfaces: – Declarativa: • En XML • Parecido a crear una página web en HTML – Programática: • En Java • Parecido a interfaces en Java (Swing / AWT) Interfaces de Usuario 7
  • 8. UIs: Visión general: Views y Layout ● Vista (View): componente ● Disposición (Layout): contenedor Interfaces de Usuario 8
  • 9. El lenguaje XML (eXtensible Markup Language) ● Repasar FTEL – http://www.gsi.dit.upm.es/~gfer/ftel/Procesadores.pdf ● XML está diseñado para la representación de datos a efectos de almacenamiento y comunicación <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE asignaturas2010 SYSTEM "asignaturas.dtd"> <asignaturas2010> <asignatura codigo="95000024" acronimo="ADSW"> <nombre>Análisis y Diseño del Software</nombre> <creditos>4.5</creditos> <semestre S="2" /> <tipo T="obligatoria" /> <guia> <url href="http//www.lab.dit.upm.es/adsw" /> </guia> </asignatura> <!--otras asignaturas--> </asignaturas2010> Interfaces de Usuario 9
  • 10. Ejercicio: SobreTeleco ● Vamos a seguir el ejemplo un poco modificado para la asignatura – http://apcmag.com/building-a-simple-android-app.htm ● Pasos: – Crear un proyecto Android en Eclipse: SobreTeleco Interfaces de Usuario 10
  • 11. Explorar proyecto Android CÓDIGO FUENTE CÓDIGO GENERADO BIBLIOTECAS ASSET CÓDIGO COMPILADO DEVX, FICHERO APK RECURSOS CONFIGURACIÓN Interfaces de Usuario 11
  • 12. Ejercicio ● Explora la estructura del proyecto HolaMundo que hicimos en el capítulo anterior. – ¿Qué hay en bin? – Pincha en main.xml, y selecciona la pestaña graphicalLayout ¿qué ves? Interfaces de Usuario 12
  • 13. Explorando un proyecto... ● source: fuentes java del proyecto ● gen:ficheros generados del proyecto. Android genera R.java que 'mapea' los recursos UI XML a Java ● library: framework Android ● assets: ficheros de cualquier formato, que podemos tratar como InputStream (veremos) ● res:recursos, organizados en una estructura fija en imágenes, layout y texto. Se referenciarán con R: R.layout (veremos) Interfaces de Usuario 13
  • 14. Recursos ● Como hay gran variedad de resoluciones y tamaños de pantallas (teléfono, tableta, TV), podemos ofrecer gráficos alternativos con diferente resolución / tamaño. ● Ver http://developer.android.com/guide/topics/resources/providing-resources.html ● Ej. Recurso por defecto Recurso alta densidad (high dpi, dots per inch, aprox. 240 dpi) Interfaces de Usuario 14
  • 16. Crear una actividad Fija como contenido el fichero res/layout/main.xml. Se genera una referencia en R este fichero: R.layout.main Interfaces de Usuario 16
  • 17. Referencias a imágenes R.drawable.ic_launcher R.layout.main R.values.strings Se selecciona la imagen según la resolución del dispositivo Interfaces de Usuario 17
  • 18. Modificando el layout (main.xml) Doble click Interfaces de Usuario 18
  • 19. Cambiamos la interfaz Interfaces de Usuario 19
  • 20. Refactorización ● Técnica de software que consiste en modificar el código para que tenga “más calidad” ● Ej. extraer una interfaz de una clase pasar unas líneas de código a método privado, renombrar una clase o método, … ● Eclipse y muchos IDEs dan soporte a la refactorización: Menú->Refactor Interfaces de Usuario 20
  • 21. Refactorización ● Pasamos el string a res/values/strings.xml Interfaces de Usuario 21
  • 22. Añadir botón Interfaces de Usuario 22
  • 23. Botón Llevamos este strings.xml Interfaces de Usuario 23
  • 24. Cambiamos el botón Interfaces de Usuario 24
  • 25. Y desplegamos El botón no hace nada en el terminal Interfaces de Usuario 25
  • 26. Añadir funcionalidad botón (I) main.xml Interfaces de Usuario 26
  • 27. Añadir funcionalidad botón (II) Toast es un tipo de notificación en pantalla Interfaces de Usuario 27
  • 28. Añadir funcionalidad botón (III) Interfaces de Usuario 28
  • 29. Refactorizar String Interfaces de Usuario 29
  • 30. ¡Probar! Interfaces de Usuario 30
  • 31. Copiamos imágenes ● Vamos a copiar las imágenes que vamos a usar (están en moodle en un zip) ● Las copiamos en res/drawable-hdpi Interfaces de Usuario 31
  • 32. Añadiendo una imagen Interfaces de Usuario 32
  • 33. Añadiendo una imagen Interfaces de Usuario 33
  • 34. Modificando tamaño Interfaces de Usuario 34
  • 35. ImageView ● contentDescription: mensaje sobre qué representa la imagen, por accesibilidad ● match_parent: tan grande como el padre ● wrap_content: tan grande como para que quepa el texto ● weight: escalado ● 0dp: el que fije weight Interfaces de Usuario 35
  • 36. Cambiando la imagen (I) Interfaces de Usuario 36
  • 37. Cambiando la imagen (II) Interfaces de Usuario 37
  • 38. ¡Lo probamos! Interfaces de Usuario 38
  • 39. Recapitulando (I) ● Hemos hecho una aplicación con 1 Actividad ● Lasactividades las creamos en Java extendiendo Activity – Cuando se lance la actividad se invocará el método onCreate, que tiene que la vista (setContentView(R.layout.main) Interfaces de Usuario 39
  • 40. R y setContentView ●R es una clase Java que se genera automáticamente a partir de un 'layout' XML ● setContentView(R.layout.main) – usado en onCreate() - el proceso se llama 'insuflar' (inflate) – Lee el XML, crea objetos java por cada vista (componente: botón, texto, imagen, …) – Fija atributos de cada objeto por cada propiedad XML Interfaces de Usuario 40
  • 41. Recapitulando (II) ● En el layout XML hemos definido – un layout (LinearLayout) que contiene – Vistas (TextView, ImageView, Button) ● Lostextos los ponemos en res/values/strings.xml Interfaces de Usuario 41
  • 42. Hierarchy Viewer ● Lanza la aplicación (Run-as) en el emulador (no vale en dispositivo real!) ● Abre la jerarquía – Window->Open Perspective-> Hierarchy viewer Interfaces de Usuario 42
  • 43. Hierarchy Viewer ● Pincha en Windows en la aplicación que quieres depurar, y ya lo ves :) Interfaces de Usuario 43
  • 44. Perspectiva Hierarchy Viewer Recuerda que sólo funciona con el emulador lanzado Interfaces de Usuario 44
  • 45. Ej. FrameLayout Interfaces de Usuario 45
  • 46. Ej. TextView Interfaces de Usuario 46
  • 47. Ej. TextView Interfaces de Usuario 47
  • 48. Los tres puntos (curiosidad) ● Lostres puntos indican las prestaciones, miden de izda a derecha los tiempos del proceso de visualización (render) – Measure time: calcular alto/ancho – Layout time: dice a las vistas las posiciones dentro de las medidas – Draw time: pinta los componentes ● Verde: más rápido que el 50% de las otras vistas ● Amarillo: más lento que el 50% de las otras vistas ● Rojo: el más lento del árbol Interfaces de Usuario 48
  • 49. Resumen ● Hemos aprendido los principales componentes de una aplicación: actividades, servicios, proveedores de contenidos y receptores de difusión ● Las actividades y servicios tienen un ciclo de vida ● Las intenciones permiten que el sistema active componentes ● El contexto de aplicación permite que los componentes compartan datos y recursos Interfaces de Usuario 49
  • 50. ¿Preguntas? Interfaces de Usuario 50