Sunteți pe pagina 1din 10

TECNOLÓGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLÓGICO DE
VILLAHERMOSA
DEPARTAMENTO DE SISTEMAS Y COMPUTACIÓN

MATERIA:
DESARROLLO DE APLICACIONES PARA
DISPOSITIVOS MÓVILES

TEMA 3:
PROGRAMACIÓN DE APLICACIONES
MÓVILES, INTERFACES AVANZADAS

CATEDRÁTICO(A):
ING. EZEQUIEL GOMEZ DOMINGUEZ

ALUMNO(S):
ERIK SAMUEL GARCÍA RAMOS

CARRERA:
ING. EN SISTEMAS COMPUTACIONALES

PERIODO:
AGOSTO - DICIEMBRE 2019

HORARIO:
19:00 - 20:00

LUGAR
VILLAHERMOSA, TAB. MEXICO
TEMA 3: PROGRAMACIÓN DE APLICACIONES MÓVILES, INTERFACES
AVANZADAS

3.1 CONTROLES DE NAVEGACIÓN

El Editor De Código

El editor de código es la ventana con tabs que se ve en la parte central.


Prácticamente todo el proyecto depende del uso que hagas de este espacio.
Si ves, cada elemento que abres ya sea con doble click o la tecla Intro, muestra su
contenido o características en el editor. Al momento de abrir varios elementos, la
ventana implementa una navegación con pestañas para poder pasar entre uno y
otro.
El proyecto nuevo que acabamos de crear abrió por defecto dos pestañas, una para
ActividadPrincipal.java y otra para actividad_principal.xml.

 Select Next Tab: Selecciona la pestaña consecutiva a la actual. El shorcut


es Alt + →.
 Select Previous Tab: Selecciona la pestaña anterior. El shortcut es Alt + ←.
 Pin Active Tab: Marca la pestaña como “clavada” para representar importancia
ante las demás pestañas. Esta opción se combina con Close All but
Pinned para cerrar todas las pestañas menos las que están pineadas. Si
marcas ActividadPrincipal.java como clavada, verás un icono circular en la
pestaña.
 Close: Cierra la pestaña actual. Puedes usar Ctrl + F4 como acceso rápido o
presionar el icono “x” de la parte superior derecha. Otra alternativa es presionar
el botón central del mouse sobre la pestaña.
 Close Others: Cierra todas las pestañas menos la actual. Para el mismo
resultado presiona Alt + click en el icono “x” de la pestaña que no deseas cerrar.
 Close All: Cierra todas las pestañas.
 Close Unmodified: Cierra todos los archivos de los cuales no se guardaron
cambios cuando tenemos un control de versiones integrado (lo usaremos
cuando veamos Git con Android Studio).
 Reopen Closed Tab: Abre la última pestaña que cerraste. Por otro lado, puedes
ver los últimos archivos recientes con el comando Ctrl + E como alternativa:
Split Vertically: Abre una nueva ventana paralela de forma vertical para la
pestaña seleccionada. Esta opción es de gran ayuda si necesita ver cambios en
dos archivos al tiempo.
Split Horizontally: Abre una nueva ventana paralela de forma horizontal para
la pestaña seleccionada..
 Move Right: Mueve la pestaña a un panel nuevo en la parte derecha al igual
que Split Vertical. La diferencia está en que Split Vertical hace una copia de
la vista, pero Move Right no.
 Move Down: Mueve la pestaña a un nuevo panel en la parte inferior. Igual que
la característica anterior, lo hace sin copiar la vista.
TEMA 3: PROGRAMACIÓN DE APLICACIONES MÓVILES, INTERFACES
AVANZADAS

 Change Splitter Orientation: Si la pestaña ha sido divida, esta opción invertirá


su orientación, es decir, si está dividida verticalmente, entonces pasa al plano
horizontal y viceversa.
 Unsplit: La pestaña retorna de nuevo al estado original.
 Unsplit All: Todas las pestañas divididas vuelven a la normalidad.
 Goto Next Splitter y Goto Previous Splitter: Seleccionan la tab divida
siguiente y la anterior.
 Tabs Placement: Permite cambiar la ubicación de las pestañas sobre el marco
de la ventana. Si despliegas las opciones disponibles verás las ubicaciones
básicas: Top, Bottom, Left y Right. También podrás quitarlas de la vista
con None.

3.2 CONTROLADORES DE TAB


En Android, el elemento principal de un conjunto de pestañas será el
control TabHost. Éste va a ser el
contenedor principal de nuestro conjunto de
pestañas y deberá tener obligatoriamente
como id el valor «@android:id/tabhost«.
Dentro de éste vamos a incluir
un LinearLayout que nos servirá para
distribuir verticalmente las secciones
principales del layout: la sección de
pestañas en la parte superior y la sección
de contenido en la parte inferior. La sección
de pestañas se representará mediante un
elemento TabWidget, que deberá tener
como id el valor «@android:id/tabs«, y
como contenedor para el contenido de las
pestañas añadiremos un FrameLayout con
el id obligatorio «@android:id/tabcontent«.
Por último, dentro
del FrameLayout incluiremos el contenido
de cada pestaña, normalmente cada uno
dentro de su propio layout principal (en mi
caso he utilizado LinearLayout) y con un id único que nos permita posteriormente
hacer referencia a ellos fácilmente (en mi caso he utilizado por ejemplo los ids
«tab1«, «tab2«, …). A continuación represento de forma gráfica toda la estructura
descrita.

3.3 TABLAS PERSONALIZADAS


Table layouts, puede user utilizado para mostrar datos de forma tabular o bien,
alineando los contenidos en la pantalla en una forma similar a una tabla HTML en
TEMA 3: PROGRAMACIÓN DE APLICACIONES MÓVILES, INTERFACES
AVANZADAS

una página web. Aprenda cómo crearlas con los archivos layout XML y a través
del código.

¿Qué es una Table Layout?

Una table layout es, exactamente, lo que se podría esperar: una cuadrícula hecha
de filas y columnas, en donde una celda puede mostrar un control vista. Desde la
perspectiva de diseño de una interfaz de usuario, una TableLayout está compuesta
de controles TableRow —uno para cada fila en su tabla. Los contenidos de una
TableRow son simplemente controles view que lo irán en cada "celda" de la tabla.

La apariencia de una TableLayout está regida por varias reglas adicionales.


Primero, el número de columnas de toda la tabla coincide con el número de
columnas en la fila con la mayoría de las columnas. Segundo, el ancho de cada
columna está definido como el ancho del contenido más amplio en la columna. Las
filas child del TableLayout y las celdas de los atributos layout_width siempre están
en MATCH_PARENT -- aunque no se pueden poner en un archivo XML, el valor
actual no puede ser anulado. El parámetro layout_height de la TableLayout de una
celda puede ser definido, sin embargo, un atributo TableRow para layout_height
está siempre WRAP_CONTENT. Las celdas pueden abarcar columnas, pero no
filas. Esto se hace a través del atributo layout_span de la vista child de una
TableRow. Una celda es una sola vista child dentro de una TableRow. Si quiere una
celda más compleja con múltiples vistas, use una vista layout para encapsular las
otras vistas.

Dicho eso, algunas reglas pueden ser modificadas. Las columnas pueden ser
marcadas como estirables, lo que significa que el ancho se puede expandir al
tamaño del contenedor parent. También, las columnas pueden ser marcadas como
encogibles, lo que significa que pueden ser reducidas en anchura para que la fila
entera encaje en el lugar proporcionado por el contenedor parent.

Para la documentación completa para la table layouts, vea la documentación


Android SDK para la clase TableLayout. El atributo XML asociado para usar en XML
resource, también, está definido en la documentación.

Diseñando un Simple Table Layout

Los layouts, se explican mejor con ejemplos, y los table layout no son diferentes.
Digamos que queremos diseñar una pantalla que muestra el pronóstico del tiempo
ampliado. Una table layout podría ser una buena opción para organizar esta
información:
TEMA 3: PROGRAMACIÓN DE APLICACIONES MÓVILES, INTERFACES
AVANZADAS

 En la primer TableRow, podemos mostrar un título para la pantalla.


 En la segunda TableRow, podemos mostrar las fechas en un formato
familiar como el de un calendario.
 En la tercera TableRow, podemos mostrar una información para la
temperatura Más Alta Diariamente.
 En la cuarta TableRow, podemos mostrar una información de temperatura
Diaria Baja.
 En la quinta TableRow, podemos mostrar gráficos para identificar las
condiciones del clima, tales como lluvia, nieve, sol, nublado con una
probabilidad de pelotas.

3.4 CONFIGURACIÓN DE PERMISOS


Android es un sistema operativo con privilegios independientes, en el que cada
aplicación se ejecuta con una identidad de sistema distinta (ID de usuario de Linux
y ID de grupo). También se separan partes del sistema en identidades distintas. Así,
Linux aísla las aplicaciones entre sí y del sistema operativo.

Se ofrecen funciones de seguridad adicionales más precisas mediante un


mecanismo de “permisos” que aplica restricciones en las operaciones específicas
para que un proceso en particular puede realizar y permisos por URI para la dar
acceso ad-hoc a elementos específicos de datos.

Arquitectura de seguridad

Un punto central del diseño de la arquitectura de seguridad de Android consiste en


que ninguna aplicación, de manera predeterminada, tiene permiso para realizar
operaciones que pudieran tener consecuencias negativas para otras aplicaciones,
el sistema operativo o el usuario. Esto incluye leer datos privados de los usuarios o
escribir en ellos (por ejemplo, los contactos o los mensajes de correo electrónico),
leer archivos de otra aplicación o escribir en ellos, acceder a una red, mantener el
dispositivo activo, etc.

Debido a que cada aplicación de Android funciona en una zona de pruebas de


proceso, las aplicaciones deben compartir recursos y datos de manera explícita.
Hacen esto declarando los permisos que necesitan para capacidades adicionales
no previstas por la zona de pruebas básica. Las aplicaciones declaran
estáticamente los permisos que necesitan y el sistema Android solicita al usuario su
consentimiento.

La zona de pruebas de aplicaciones no depende de la tecnología empleada para


crear una aplicación. En especial, la VM Dalvik no supone un límite de seguridad y
cualquier app puede ejecutar código nativo (consulta el NDK de Android). Todos los
tipos de aplicaciones (Java, nativas e híbridas) se colocan en zonas de pruebas de
la misma manera y tienen el mismo grado de seguridad.
TEMA 3: PROGRAMACIÓN DE APLICACIONES MÓVILES, INTERFACES
AVANZADAS

Firma de aplicaciones

Todos los APK (archivos .apk) deben estar firmados con un certificado cuya clave
privada esté en manos del desarrollador. Este certificado identifica al autor de la
aplicación. No es necesario que el certificado lleve la firma de una autoridad de
certificación; es perfectamente admisible, y común, que las aplicaciones de Android
usen certificados autofirmados. El objetivo de los certificados de Android es
distinguir a los autores de las aplicaciones. Esto permite al sistema otorgar o
denegar a las aplicaciones el acceso a permisos de nivel de firma y otorgar o
denegar a una aplicación una solicitud para usar la misma la identidad de Linux que
otra aplicación.

ID de usuario y acceso a archivos

En el momento de la instalación, Android asigna a cada paquete un ID de usuario


de Linux distinto. La identidad se mantiene constante durante la vida útil del paquete
en ese dispositivo. En un dispositivo diferente, el mismo paquete puede tener otro
ID de usuario; lo que importa es que cada paquete tenga un ID de usuario distinto
en un dispositivo determinado.

Debido a que la aplicación de la seguridad tiene lugar en el nivel del proceso, el


código de dos paquetes cualesquiera normalmente no puede ejecutarse en el
mismo proceso, ya que deben funcionar como diferentes usuarios de Linux. Puedes
usar el atributo sharedUserId en la etiqueta manifest de AndroidManifest.xml de
cada uno de los paquetes para que se les asigne el mismo ID de usuario. Al hacer
esto, por motivos de seguridad, los dos paquetes se tratan como si fueran una
misma aplicación, con el mismo ID de usuario y permisos de archivo. Ten en cuenta
que, a fin de mantener la seguridad, solo se asignará el mismo ID de usuario a dos
aplicaciones que tengan la misma firma (y soliciten el mismo sharedUserId).

3.7 SENSORES
Android permite acceder a los sensores internos del dispositivo a través de las
clases Sensor,SensorEvent, SensorManager, y la interfaz SensorEventListener, del
paquete android.hardware.
La clase Sensor acepta ocho tipos de sensores. Aunque, los sensores disponibles
varían en función del dispositivo utilizado:
TEMA 3: PROGRAMACIÓN DE APLICACIONES MÓVILES, INTERFACES
AVANZADAS

3.8 MAPAS

Cómo agregar mapas a tu app

Con la versión 2 de la API de Google Maps para Android, puedes incorporar mapas
en una actividad como un fragmento con un fragmento XML simple. La nueva
versión de Maps ofrece funciones asombrosas como mapas en 3D, mapas de
interiores, híbridos y de terreno; mosaicos basados en vectores para dibujos y
TEMA 3: PROGRAMACIÓN DE APLICACIONES MÓVILES, INTERFACES
AVANZADAS

almacenamiento en caché más eficaces; transiciones animadas; y mucho


más. Agrega un objeto de mapa.

Cómo personalizar el mapa

Agrega marcadores en el mapa a fin de indicar puntos de interés especiales para


tus usuarios. Puedes definir colores o íconos personalizados para los marcadores
del mapa de manera que este combine con la apariencia y el estilo de tu app. Si
quieres mejorar la app aún más, incluye polilíneas y polígonos a fin de indicar rutas
y regiones, o bien proporciona superposiciones de imágenes completas. Dibuja
marcadores.

Cómo controlar la vista del usuario

Ofrece a los usuarios una vista del mundo diferente con la capacidad de controlar
las propiedades de rotación, inclinación, zoom y desplazamiento lateral de la
perspectiva de "cámara" del mapa. Cambia la vista.

Cómo agregar Street View a tu app

Incorpora Street View en una actividad y permite que los usuarios exploren el mundo
a través de vistas panorámicas de 360 grados. Controla el zoom y la orientación
(inclinación y dirección) de la cámara de Street View de forma programática, y anima
los movimientos de la cámara por un período determinado. Agrega Street View.

El objeto del mapa

El SDK de Maps para Android le permite mostrar un mapa de Google en su aplicación de


Android. Estos mapas tienen el mismo aspecto que los mapas que ve en la aplicación
Google Maps para dispositivos móviles (GMM), y la API expone muchas de las mismas
características. Dos diferencias notables entre la aplicación GMM y los mapas que muestra
Maps SDK para Android son:

 Los mosaicos de mapas que muestra la API no contienen ningún contenido personalizado,
como iconos inteligentes personalizados.
 No se puede hacer clic en todos los iconos del mapa. Por ejemplo, no se puede hacer clic en
los iconos de las estaciones de tránsito. Sin embargo, se puede hacer clic en los marcadores
que agrega al mapa, y la API tiene una interfaz de devolución de llamada para varias
interacciones de marcadores.

Además de la funcionalidad de mapeo, la API también admite una gama completa de


interacciones que son consistentes con el modelo de interfaz de usuario de Android. Por
ejemplo, puede configurar interacciones con un mapa definiendo oyentes que respondan a
los gestos del usuario.
TEMA 3: PROGRAMACIÓN DE APLICACIONES MÓVILES, INTERFACES
AVANZADAS

La clase clave cuando se trabaja con un objeto de mapa es


la GoogleMapclase. GoogleMapmodela el objeto del mapa dentro de su aplicación. Dentro
de su interfaz de usuario, un mapa estará representado por
a MapFragmentu MapViewobjeto.

GoogleMap maneja las siguientes operaciones automáticamente:

 Conexión al servicio de Google Maps.


 Descargando mosaicos de mapas.
 Mostrar mosaicos en la pantalla del dispositivo.
 Mostrar varios controles, como la panorámica y el zoom.
 Responde a los gestos de desplazamiento y zoom moviendo el mapa y acercándolo o
alejándolo.

Además de estas operaciones automáticas, puede controlar el comportamiento de los mapas


con objetos y métodos de la API. Por ejemplo, GoogleMaptiene métodos de devolución de
llamada que responden a las pulsaciones de teclas y los gestos táctiles en el mapa. También
puede establecer iconos de marcadores en su mapa y agregarle superposiciones, utilizando
los objetos que proporcione GoogleMap.

MapFragment
MapFragment, una subclase de la Fragmentclase de Android , le permite colocar un
mapa en un fragmento de Android. MapFragmentlos objetos actúan como contenedores
para el mapa y proporcionan acceso al GoogleMapobjeto.

A diferencia de a View, a Fragmentrepresenta un comportamiento o una parte de la


interfaz de usuario en una actividad. Puede combinar varios fragmentos en una sola
actividad para crear una interfaz de usuario de múltiples paneles y reutilizar un fragmento
en múltiples actividades. Consulte la documentación de Android sobre Fragmentos para
obtener más información.

Vista del mapa


MapView, una subclase de la Viewclase Android , le permite colocar un mapa en un
Android View. A Viewrepresenta una región rectangular de la pantalla y es un elemento
fundamental para las aplicaciones y widgets de Android. Al igual que
a MapFragment, MapView actúa como un contenedor para el mapa, exponiendo la
funcionalidad del mapa central a través del GoogleMapobjeto.

Al utilizar la API en el modo totalmente interactivo , los usuarios de la MapViewclase


deben enviar los siguientes métodos de la actividad del ciclo de vida a los métodos
correspondientes de
TEMA 3: PROGRAMACIÓN DE APLICACIONES MÓVILES, INTERFACES
AVANZADAS

la MapViewclase: onCreate(), onStart(), onResume(), onPause(), onStop(), onD


estroy(), onSaveInstanceState(), y onLowMemory(). El repositorio de
ApiDemos en GitHub incluye una muestra que muestra cómo reenviar los métodos del
ciclo de vida de la actividad. Cuando se usa la API en modo lite , el reenvío de eventos del
ciclo de vida es opcional. Para más detalles, consulte la documentación del modo lite .

Tipos de mapas

Hay muchos tipos de mapas disponibles en Maps SDK for Android. El tipo de un mapa
gobierna la representación general del mapa. Por ejemplo, un atlas generalmente
contiene mapas políticos que se centran en mostrar límites y mapas de carreteras que
muestran todas las carreteras de una ciudad o región.

Maps SDK para Android ofrece cuatro tipos de mapas, así como una opción para no tener
ningún mapa:

Normal

Mapa de carreteras típico. Muestra caminos, algunas características construidas por


humanos y características naturales importantes como los ríos. Las etiquetas de
carretera y de función también son visibles.

Híbrido

Datos de fotografía satelital con mapas de carreteras agregados. Las etiquetas de


carretera y de función también son visibles.

Satélite

Datos de fotografía satelital. Las etiquetas de carretera y de función no son visibles.

Terreno

Datos topográficos. El mapa incluye colores, líneas de contorno y etiquetas, y


sombreado en perspectiva. Algunas carreteras y etiquetas también son visibles.

Ninguna

Sin azulejos El mapa se representará como una cuadrícula vacía sin mosaicos
cargados.

S-ar putea să vă placă și